- Einstieg: heute geht es um die Herkunft von JavaScript und den Standard dahinter
- Nicht auf dem Titel verweilen
- Zwei Bloecke heute: erst Geschichte und ECMAScript-Standard, dann Sprachgrundlagen und Einbettung
- Roadmap kurz zeigen
- Einstieg: Wozu wurde JavaScript urspruenglich entwickelt?
- Bezug zu NodeJS herstellen: JS hat den Browser laengst verlassen
- Kurzer historischer Abriss: Netscape, dann JScript von Microsoft
- Ueberleitung: zwei fast gleiche Sprachen brauchten einen gemeinsamen Standard
- Namensherkunft ECMA kurz erklaeren (Gremium, nicht nur Sprache)
- Jaehrlicher Release-Zyklus als Ueberleitung zu spaeteren Feature-Fragen (caniuse.com)
- Kernaussage: ECMAScript ist nur die Sprache, keine I/O
- Begriff "Host Environment" einfuehren, spaeter mit JavaScript/JScript verknuepfen
- Bewusste Denkpause mit dem GIF erzeugen, dann die Frage in den Raum stellen
- Noch keine Antwort geben, ueberleitet zur naechsten Folie
- Kurze Partner- oder Einzelarbeit, dann 1-2 Antworten einsammeln
- Erwartung: Trennung erlaubt mehrere Implementationen, aber auch Inkonsistenzen
- Ergebnisse der vorherigen Denkpause hier einordnen
- Betonen: ein Standard mit mehreren Implementationen ist der Normalfall im Web (vgl. HTML/CSS)
- Nur als Ueberblick zeigen, nicht jede Engine einzeln vertiefen
- V8 als praesentesten Vertreter hervorheben (Chrome + Node.js)
- Parallele zu HTML/CSS ziehen, die Studierenden schon kennen
- MDN und caniuse.com als Nachschlagewerke fuer den Projektalltag empfehlen
- Zusammenfassung des ersten Blocks: ECMAScript vs. JavaScript sauber trennen
- Ueberleitung: als naechstes wird es konkret, wir schauen uns die Sprache selbst an
- Wechsel von Geschichte/Standard zu konkreter Sprache: Variablen, Einbettung, Parsing-Reihenfolge
- Konsole zeigen: erste Zeile laeuft durch ("Hello there!"), erst danach kommt der Fehler
- Kernaussage: kein Vorab-Check des gesamten Skripts wie bei kompilierten Sprachen
- Zeile fuer Zeile durchgehen: word wird erst String, dann Number, num wird erst Number, dann String
- Ergebnis "24" als Stringverkettung erklaeren, nicht als Addition
- Frage stellen: was ist hier anders zwischen x und y?
- y ohne var/let/const wird implizit zu einer globalen Variable, das ist der Unterschied
- Jede Zeile kurz kommentieren, besonders die letzte (2/(1/0) = 0) als Überraschung hervorheben
- NaN und Infinity als Sonderwerte einordnen, keine Fehler, sondern gueltige Werte
- Unterschied Null vs. Undefined betonen: bewusst leer vs. noch nicht gesetzt
- Kurze Randnotiz: typeof null ist "object", historische Eigenart von JavaScript
- Blockgueltigkeit (let/const) gegen Funktionsgueltigkeit (var) abgrenzen
- Beispiel zeigen: x existiert ausserhalb des if-Blocks nicht mehr
- Kurz ueberlegen lassen, dann gemeinsam ausfuehren/pruefen
- Erwartung: gleicher ReferenceError wie auf der vorherigen Folie, const aendert daran nichts
- DOM (Document Object Model, die Baumstruktur der geladenen HTML-Seite) als Begriff kurz einordnen
- Zeigen, wie der Formularname im Code als document.berechnung wieder auftaucht
- Einfachster Einbettungsfall: script-Tag direkt im body
- Ueberleitung zur externen Variante auf der naechsten Folie
- Gleiches Ergebnis wie zuvor, jetzt aber aus ausgelagerter Datei
- Vorteil andeuten: Wiederverwendung und Trennung von Struktur und Verhalten
- Uebung im Lernraumkurs verlinken (QR-Code oder direkte Navigation zeigen)
- Hinweis auf AI-Features bewusst wiederholen, das ist den Studierenden wichtig
- Frage bewusst offen stehen lassen, Vermutungen aus dem Publikum einsammeln
- Ueberleitung: naechste Folie klaert die tatsaechliche Reihenfolge
- Kategorien einmal aufzaehlen, Ausfuehrungsreihenfolge ist Kernaussage
- Bei Bedarf auf Nachfrage vertiefen, welche Kategorie in der Praxis am haeufigsten vorkommt