⚡ JavaScript für Einsteiger
Die Sprache der Interaktivität – von einfachen Klicks bis zu komplexen Anwendungen
Alles, was Sie für den Einstieg brauchen
🛠️ Empfohlene Tools für JavaScript-Entwickler
Diese Tools nutze ich selbst – sie helfen Ihnen, Ihre Projekte professionell umzusetzen und zu vermarkten.
📄 HTML Executable
HTML-Dateien und Websites als eigenständige Windows-EXE-Dateien kompilieren.
Jetzt ansehen →⚡ ExeOutput for PHP
PHP-Anwendungen in eigenständige Windows-EXE-Dateien kompilieren.
Jetzt ansehen →* Affiliate-Links: Bei einem Kauf über diese Links erhalten wir eine kleine Provision – für Sie entstehen keine zusätzlichen Kosten.
1. Was ist JavaScript?
JavaScript (oft als JS abgekürzt) ist eine Programmiersprache, die in Webbrowsern läuft und Webseiten interaktiv macht.
Mit JavaScript können Sie:
- ✅ Auf Benutzer-Aktionen reagieren (Klicks, Tastendrücke, Mausbewegungen)
- ✅ Inhalte dynamisch verändern (Texte, Bilder, Stile)
- ✅ Formulare prüfen (E-Mail-Format, Pflichtfelder)
- ✅ Daten vom Server laden ohne Seite neu zu laden (AJAX)
- ✅ Animationen und interaktive Effekte erstellen
- ✅ Komplette Web-Anwendungen bauen (z.B. mit React, Vue, Angular)
⚡ JavaScript vs. Java – Ein häufiges Missverständnis
📊 Wo wird JavaScript eingesetzt?
2. JavaScript einbinden
Es gibt drei Wege, JavaScript in Ihre HTML-Seite einzubinden:
📌 Methode 1: Externe JS-Datei (Empfohlen!)
<head> <!-- Oder am Ende des Body für bessere Performance --> <script src="script.js"></script> </head>
// Das ist ein Kommentar in JavaScript console.log("Hello World!"); alert("Hallo!");
📌 Methode 2: Interner JS-Block
<head> <script> alert("Hallo!"); </script> </head>
📌 Methode 3: Inline-JavaScript (direkt am Element)
<button onclick="alert('Hallo!')">Klick mich</button>
<script>-Tags
am Ende des <body> – so laden Ihre Inhalte zuerst und die Seite wirkt schneller.
3. Variablen & Datentypen
Variablen sind Behälter für Daten. Sie können Werte speichern und später verwenden.
📝 Variablen deklarieren
// Mit let (kann geändert werden) let name = "Anna"; name = "Ben"; // Geht! // Mit const (kann NICHT geändert werden) const geburtsjahr = 1990; // geburtsjahr = 1995; // Fehler! // Mit var (veraltet – nicht mehr verwenden!) var alt = 30;
let oder const –
var ist veraltet und sollte nicht mehr genutzt werden.
📝 Datentypen
| Datentyp | Beschreibung | Beispiel |
|---|---|---|
| String | Text (in Anführungszeichen) | "Hallo Welt" |
| Number | Zahlen (ganze oder mit Komma) | 42, 3.14 |
| Boolean | Wahrheitswert | true oder false |
| Undefined | Wert wurde noch nicht zugewiesen | undefined |
| Null | Bewusst kein Wert | null |
| Object | Komplexe Datenstruktur | { name: "Anna", alter: 30 } |
| Array | Liste von Werten | [1, 2, 3, 4] |
let name = "Anna"; // String let alter = 30; // Number let istStudent = false; // Boolean let hobby = null; // Null let adresse = undefined; // Undefined // Typ prüfen mit typeof console.log(typeof name); // "string" console.log(typeof alter); // "number"
4. Operatoren
Operatoren führen Operationen auf Werten durch.
➕ Arithmetische Operatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
+ |
Addition | 5 + 3 → 8 |
- |
Subtraktion | 10 - 4 → 6 |
* |
Multiplikation | 4 * 3 → 12 |
/ |
Division | 15 / 3 → 5 |
% |
Modulo (Rest) | 10 % 3 → 1 |
** |
Potenz | 2 ** 3 → 8 |
🔍 Vergleichsoperatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
== |
Gleich (Wert) | 5 == "5" → true |
=== |
Gleich (Wert + Typ) | 5 === "5" → false |
!= |
Ungleich (Wert) | 5 != "5" → false |
!== |
Ungleich (Wert + Typ) | 5 !== "5" → true |
> |
Größer als | 10 > 5 → true |
< |
Kleiner als | 10 < 5 → false |
>= |
Größer oder gleich | 10 >= 10 → true |
<= |
Kleiner oder gleich | 10 <= 5 → false |
=== und !==
statt == und != – das vermeidet unerwartete Fehler!
📐 Logische Operatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
&& |
UND (beide müssen wahr sein) | true && true → true |
|| |
ODER (mindestens einer wahr) | true || false → true |
! |
NICHT (Umkehrung) | !true → false |
5. Bedingungen (if/else)
Mit if/else können Sie Code nur unter bestimmten Bedingungen ausführen.
let alter = 18; if (alter >= 18) { console.log("Du bist volljährig!"); } else { console.log("Du bist noch minderjährig."); }
📝 else if für mehrere Bedingungen
let note = 85; if (note >= 90) { console.log("Sehr gut!"); } else if (note >= 80) { console.log("Gut!"); } else if (note >= 70) { console.log("Befriedigend"); } else { console.log("Nicht bestanden"); }
🎯 Live-Demo: Altersprüfung
Geben Sie Ihr Alter ein:
🔀 Der Ternäre Operator (Kurzform)
// Lange Form let status; if (alter >= 18) { status = "volljährig"; } else { status = "minderjährig"; } // Kurze Form (ternärer Operator) let status = (alter >= 18) ? "volljährig" : "minderjährig";
6. Schleifen
Mit Schleifen können Sie Code wiederholen.
🔄 for-Schleife
// Von 0 bis 4 zählen for (let i = 0; i < 5; i++) { console.log("Zahl:", i); } // Ausgabe: 0, 1, 2, 3, 4 // Von 10 bis 1 rückwärts for (let i = 10; i > 0; i--) { console.log(i); }
📋 while-Schleife
let i = 0; while (i < 5) { console.log(i); i++; }
📝 forEach für Arrays
let namen = ["Anna", "Ben", "Clara"]; namen.forEach(function(name) { console.log("Hallo", name); }); // Mit Pfeilfunktion (modern) namen.forEach((name) => { console.log("Hallo", name); });
7. Funktionen
Funktionen sind wiederverwendbare Code-Blöcke. Sie nehmen Daten entgegen (Parameter) und geben Ergebnisse zurück.
📝 Funktionen definieren
// Traditionelle Funktion function grüße(name) { return "Hallo " + name + "!"; } // Pfeilfunktion (modern) const grüße = (name) => { return `Hallo ${name}!`; }; // Funktion aufrufen let nachricht = grüße("Anna"); console.log(nachricht); // "Hallo Anna!"
🎯 Live-Demo: Funktion in Aktion
Gib deinen Namen ein und klicke auf den Button:
📝 Funktion mit mehreren Parametern
function rechner(a, b, operation) { if (operation === "+") { return a + b; } else if (operation === "-") { return a - b; } else if (operation === "*") { return a * b; } else if (operation === "/") { if (b === 0) { return "Division durch 0 nicht erlaubt!"; } return a / b; } else { return "Unbekannte Operation"; } } console.log(rechner(10, 5, "+")); // 15 console.log(rechner(10, 5, "*")); // 50
🎯 Live-Demo: Taschenrechner
8. DOM-Manipulation
Das DOM (Document Object Model) ist die Baumstruktur Ihrer HTML-Seite. Mit JavaScript können Sie das DOM ändern – Inhalte, Stile und Struktur.
📝 Elemente finden
// Ein Element mit ID finden let element = document.getElementById("meineId"); // Elemente mit Klasse finden let elemente = document.getElementsByClassName("meineKlasse"); // Moderne Methode (empfohlen!) let element = document.querySelector("#meineId"); let elemente = document.querySelectorAll(".meineKlasse");
📝 Inhalte ändern
// Text ändern document.getElementById("demo").textContent = "Neuer Text!"; // HTML ändern document.getElementById("demo").innerHTML = "<strong>Fetter Text</strong>"; // Stil ändern document.getElementById("demo").style.color = "#e94560"; document.getElementById("demo").style.fontWeight = "bold"; // Element hinzufügen let neuesElement = document.createElement("p"); neuesElement.textContent = "Neuer Absatz!"; document.getElementById("container").appendChild(neuesElement);
🎯 Live-Demo: DOM manipulieren
Dieser Text kann verändert werden!
9. Events & Event-Listener
Events sind Aktionen, die im Browser passieren (Klicks, Tastendrücke, Mausbewegungen). Mit Event-Listenern können Sie darauf reagieren.
📝 Event-Listener hinzufügen
// Klick-Event document.getElementById("meinButton").addEventListener("click", function() { alert("Button wurde geklickt!"); }); // Mit Pfeilfunktion (modern) document.getElementById("meinButton").addEventListener("click", () => { alert("Button wurde geklickt!"); });
📝 Wichtige Events
| Event | Beschreibung | Beispiel |
|---|---|---|
click |
Mausklick auf ein Element | button.addEventListener("click", ...) |
mouseover |
Maus fährt über Element | element.addEventListener("mouseover", ...) |
mouseout |
Maus verlässt Element | element.addEventListener("mouseout", ...) |
keydown |
Taste wird gedrückt | input.addEventListener("keydown", ...) |
keyup |
Taste wird losgelassen | input.addEventListener("keyup", ...) |
submit |
Formular wird abgeschickt | form.addEventListener("submit", ...) |
change |
Wert wurde geändert | select.addEventListener("change", ...) |
scroll |
Seite wird gescrollt | window.addEventListener("scroll", ...) |
load |
Seite wurde geladen | window.addEventListener("load", ...) |
🎯 Live-Demo: Events erleben
10. Arrays
Arrays sind geordnete Listen von Werten.
📝 Arrays erstellen und verwenden
// Array erstellen let namen = ["Anna", "Ben", "Clara"]; let zahlen = [1, 2, 3, 4, 5]; let gemischt = ["Text", 42, true, null]; // Auf Elemente zugreifen (Index beginnt bei 0) console.log(namen[0]); // "Anna" console.log(namen[2]); // "Clara" // Elemente hinzufügen namen.push("David"); // Am Ende hinzufügen namen.unshift("Zoe"); // Am Anfang hinzufügen // Elemente entfernen namen.pop(); // Letztes Element entfernen namen.shift(); // Erstes Element entfernen // Länge des Arrays console.log(namen.length); // Array durchlaufen namen.forEach((name) => { console.log("Hallo", name); });
🎯 Live-Demo: Einkaufsliste
11. Objekte
Objekte sind Sammlungen von Eigenschaften (Schlüssel-Wert-Paaren).
📝 Objekte erstellen
// Objekt literal let person = { name: "Anna", alter: 30, stadt: "Berlin", hobbys: ["Lesen", "Musik"], grüßen: function() { return "Hallo, ich bin " + this.name; } }; // Auf Eigenschaften zugreifen console.log(person.name); // "Anna" console.log(person["alter"]); // 30 // Methode aufrufen console.log(person.grüßen()); // "Hallo, ich bin Anna" // Eigenschaften ändern/hinzufügen person.email = "anna@example.com"; person.alter = 31;
🎯 Live-Demo: Profil-Karte
Name: Anna Müller
Alter: 30 Jahre
Stadt: Berlin
Hobbys: Lesen, Musik
12. Praxis-Beispiele
📝 Beispiel 1: To-Do-Liste
// To-Do-Liste mit Arrays und DOM-Manipulation let aufgaben = []; function aufgabeHinzufügen(text) { aufgaben.push({ text: text, erledigt: false }); listeAnzeigen(); } function aufgabeErledigen(index) { aufgaben[index].erledigt = true; listeAnzeigen(); } function listeAnzeigen() { let html = ""; aufgaben.forEach((aufgabe, index) => { html += `<li>${aufgabe.text} <button onclick="aufgabeErledigen(${index})">✅</button></li>`; }); document.getElementById("todoListe").innerHTML = html; }
📋 To-Do-Liste
📝 Beispiel 2: Zufallsgenerator
function zufallszahl(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function würfel() { return zufallszahl(1, 6); } function lottozahl() { return zufallszahl(1, 49); }
🎲 Zufallsgenerator
📝 Beispiel 3: Dark Mode Toggle
let darkMode = false; function toggleDarkMode() { darkMode = !darkMode; if (darkMode) { document.body.style.background = "#1a1a2e"; document.body.style.color = "#e8e8e8"; } else { document.body.style.background = ""; document.body.style.color = ""; } }
🌓 Dark Mode Toggle
Klicke, um das Farbschema der ganzen Seite zu wechseln!
13. Übungen zum Mitmachen
📝 Übung 1: Temperatur-Umrechner
Schreibe eine Funktion, die Celsius in Fahrenheit umrechnet.
Formel: °F = (°C × 9/5) + 32
function celsiusToFahrenheit(celsius) { return (celsius * 9 / 5) + 32; } console.log(celsiusToFahrenheit(0)); // 32 console.log(celsiusToFahrenheit(100)); // 212
📝 Übung 2: Jahreszeiten-Prüfer
Schreibe eine Funktion, die basierend auf dem Monat (1-12) die Jahreszeit zurückgibt.
function jahreszeit(monat) { if (monat >= 3 && monat <= 5) return "Frühling"; if (monat >= 6 && monat <= 8) return "Sommer"; if (monat >= 9 && monat <= 11) return "Herbst"; return "Winter"; }
📝 Übung 3: E-Mail-Validator
Schreibe eine Funktion, die prüft, ob eine E-Mail-Adresse ein @ und einen Punkt enthält.
function validateEmail(email) { return email.includes("@") && email.includes("."); } console.log(validateEmail("test@example.com")); // true console.log(validateEmail("testexamplecom")); // false
📝 Übung 4: Zufälliges Element aus Array
Schreibe eine Funktion, die ein zufälliges Element aus einem Array zurückgibt.
function zufälligesElement(array) { let index = Math.floor(Math.random() * array.length); return array[index]; } let namen = ["Anna", "Ben", "Clara"]; console.log(zufälligesElement(namen));
📝 Übung 5: Zähler-App
Baue einen Zähler mit +1, -1 und Reset-Button.
let count = 0; function updateCounter() { document.getElementById("counterDisplay").textContent = count; } function increment() { count++; updateCounter(); } function decrement() { count--; updateCounter(); } function resetCounter() { count = 0; updateCounter(); }
14. Tipps & Best Practices
console.log()
zum Debuggen – es zeigt Werte in der Browser-Konsole an (F12).
const für Werte,
die sich nicht ändern, und let für veränderliche Werte.
var ist veraltet und verursacht oft Probleme.
Verwenden Sie immer let oder const.
=== für strikte Gleichheit
(prüft Wert UND Typ) – das vermeidet unerwartete Fehler.
benutzerName statt x oder n.
15. Weiterführende Ressourcen
📚 Online-Lernplattformen
- MDN Web Docs – Die beste JavaScript-Dokumentation (kostenlos)
- W3Schools – Einfache Tutorials mit Live-Editoren
- freeCodeCamp – Interaktive Kurse mit Zertifikaten
- JavaScript.info – Modernes JavaScript-Tutorial (kostenlos)
- Codecademy – Interaktive JavaScript-Kurse
📖 Empfohlene Bücher
- "JavaScript – Das umfassende Handbuch" – Philip Ackermann
- "Eloquent JavaScript" – Marijn Haverbeke (kostenlos online)
- "JavaScript für Einsteiger" – Thomas Theis
- "You Don't Know JS" – Kyle Simpson (kostenlos online)
🛠️ Nützliche Tools
- VS Code – Der beste Code-Editor mit JS-Unterstützung
- Chrome DevTools – Debugging, Console, Performance (F12)
- CodePen – HTML/CSS/JS online testen und teilen
- JSFiddle – Online-Editor für JavaScript
- ESLint – Code-Qualitätsprüfung für JavaScript
🎮 Lernspiele
- CodeCombat – JavaScript spielerisch lernen
- JSRobot – JavaScript-Roboter programmieren
- Elevator Saga – Aufzüge mit JavaScript steuern
- Codewars – JavaScript-Herausforderungen