====== JavaScript Grundlagen & Dokumentation ====== Diese Dokumentation bietet eine strukturierte Übersicht über die Grundlagen von JavaScript, Syntax, Variablen, Operatoren, Kontrollstrukturen, Funktionen und Event-Handling basierend auf den Unterlagen von Jennifer Robbins[cite: 17]. ===== 1. Einführung & Einbindung ===== JavaScript ist eine clientseitige, lose typisierte und dynamische Skriptsprache, die direkt vom Browser interpretiert wird, um Webseiten Interaktivität und Logik hinzuzufügen[cite: 17]. ==== Einbindungsarten ==== * **Eingebettetes Skript:** Direkt im HTML-Dokument innerhalb des '' ==== Empfohlene Platzierung ==== * **Im ``-Bereich:** Wenn Skripte ausgeführt werden müssen, bevor der Seiteninhalt geladen ist[cite: 17]. * **Vor dem schließenden ``-Tag:** Bevorzugt, damit das DOM und die Seitenstruktur vollständig geladen sind, bevor das Skript startet[cite: 17]. ===== 2. Syntax & Variablen ===== ==== Syntax-Grundlagen ==== * JavaScript unterscheidet strikt zwischen **Groß- und Kleinschreibung** (Case-sensitive)[cite: 17]. * **Einzeilige Kommentare:** Beginnen mit ''//''[cite: 17]. * **Mehrzeilige Kommentare:** Stehen zwischen ''/*'' und ''*/''[cite: 17]. ==== Datentypen ==== ^ Datentyp ^ Beschreibung ^ Beispiel ^ | **Undefined** | Variable wurde deklariert, hat aber noch keinen Wert[cite: 17] | ''var foo;''[cite: 17] | | **Null** | Bewusste Zuweisung von keinem Wert[cite: 17] | ''var foo = null;''[cite: 17] | | **Zahl (Number)** | Numerische Werte für Berechnungen[cite: 17] | ''var foo = 5;''[cite: 17] | | **String** | Textketten in einfachen oder doppelten Anführungszeichen[cite: 17] | ''var foo = "Text";''[cite: 17] | | **Boolean** | Wahrheitswerte für Logikentscheidungen[cite: 17] | ''var foo = true;''[cite: 17] | | **Array** | Indizierte Gruppe mehrerer Werte (Start bei Index 0)[cite: 17] | ''var foo = [5, "Text"];''[cite: 17] | // Deklaration und Datenzugriff var fruits = ["Apfel", "Birne", "Kirsche"]; alert(fruits[0]); // Gibt "Apfel" aus ===== 3. Operatoren & Kontrollstrukturen ===== ==== Vergleichs- & Mathematische Operatoren ==== * **Vergleich:** ''=='' (Gleich)[cite: 17], ''==='' (Identisch: Wert & Typ gleich)[cite: 17], ''!=' ' (Nicht gleich)[cite: 17], ''!=='' (Nicht identisch)[cite: 17], ''>'' / ''<'' (Größer/Kleiner als)[cite: 17]. * **Mathematik:** ''+'' (Addieren)[cite: 17], ''-'' (Subtrahieren)[cite: 17], ''*'' (Multiplizieren)[cite: 17], ''/'' (Dividieren)[cite: 17], ''++'' (Inkrement um 1)[cite: 17], ''--'' (Dekrement um 1)[cite: 17]. ==== Bedingungen (if / else) ==== var status = "aktiv"; if (status === "aktiv") { alert("Zugriff gewährt."); } else { alert("Zugriff verweigert."); } ==== Schleifen (Loops) ==== Schleifen führen Anweisungen wiederholt aus, solange eine Bedingung wahr ist[cite: 17]. // Zählschleife von 0 bis 2 for (var i = 0; i <= 2; i++) { alert("Durchlauf Nummer: " + i); } ===== 4. Funktionen & Variablen-Scope ===== Eine Funktion führt definierte Aufgaben aus, sobald sie aufgerufen wird[cite: 17]. Sie kann Argumente entgegennehmen und Ergebnisse zurückliefern[cite: 17]. ==== Funktionsdefinition ==== // Benutzerdefinierte Funktion mit Parametern function addieren(a, b) { return a + b; } var summe = addieren(3, 4); // Ergebnis: 7 ==== Sichtbarkeitsbereich (Scope) ==== * **Lokaler Scope:** Variablen, die innerhalb einer Funktion mit ''var'' deklariert werden, sind nur dort gültig[cite: 17]. * **Globaler Scope:** Außerhalb von Funktionen deklarierte Variablen (oder Variablen innerhalb einer Funktion ohne ''var'') sind im gesamten Skript verfügbar[cite: 17]. ===== 5. Browser-Objekte & Events ===== ==== Window-Objekt ==== Das ''window''-Objekt ermöglicht den Zugriff auf Browserfenster-Eigenschaften und -Methoden[cite: 17]: * **alert("Text"):** Zeigt einen Hinweisdialog an[cite: 17]. * **confirm("Frage"):** Öffnet Bestätigungsdialog mit OK/Abbrechen[cite: 17]. * **location:** Ermöglicht Lese- und Schreibzugriff auf die Adressleiste[cite: 17]. * **history:** Enthält die aufgerufenen URLs der aktuellen Sitzung[cite: 17]. ==== Ereignisbehandler (Event Handlers) ==== Events reagieren auf Benutzerinteraktionen wie ''onclick'' (Klick)[cite: 17], ''onmouseover'' (Maus darüber bewegen)[cite: 17] oder ''onload'' (Seite geladen)[cite: 17]. // 1. Zuweisung als Eigenschaft window.onclick = function() { alert("Klick im Fenster erkannt!"); }; // 2. Verwendung von addEventListener() window.addEventListener("click", function() { alert("Klick via EventListener!"); });