// Moderne Variablen mit let und constlet alter = 18; // kann geändert werdenconst name = "Anna"; // kann NICHT geändert werdenvar stadt = "Zürich"; // alte Art (vermeiden)// Verschiedene Datentypenlet preis = 19.99; // Numberlet istStudent = true; // Booleanlet hobby = "Programmieren"; // Stringlet freunde = null; // nulllet telefon; // undefinedconsole.log(typeof alter); // "number"console.log(typeof name); // "string"console.log(typeof istStudent); // "boolean"
let und const sind modern, var ist veraltet. const für unveränderliche Werte verwenden.
2. Ausgabe und Eingabe
Console.log für Entwickler
// Verschiedene Ausgabe-Methodenconsole.log("Hallo JavaScript!");
console.log("Ich bin", 18, "Jahre alt");
let x = 5, y = 3;
console.log(`Die Summe von ${x} und ${y} ist ${x + y}`);
// Weitere Console-Methodenconsole.warn("Das ist eine Warnung");
console.error("Das ist ein Fehler");
console.table(["Anna", "Max", "Lisa"]);
Ausgabe in der Browser-Konsole (F12): Hallo JavaScript! Ich bin 18 Jahre alt Die Summe von 5 und 3 ist 8
Alert und Prompt
// Benutzer-Interaktionalert("Willkommen auf meiner Webseite!");
let benutzername = prompt("Wie heisst du?");
let alter = prompt("Wie alt bist du?");
// String zu Number umwandeln
alter = Number(alter);
alert(`Hallo ${benutzername}, du bist ${alter} Jahre alt!`);
Klicke auf den Button für eine Demo
prompt() gibt immer einen String zurück - für Zahlen Number() verwenden.
3. Bedingungen (if/else)
Einfache Bedingungen
let punkte = 85;
if (punkte >= 90) {
console.log("Sehr gut!");
} else if (punkte >= 70) {
console.log("Gut!");
} else if (punkte >= 50) {
console.log("Bestanden!");
} else {
console.log("Nicht bestanden!");
}
// Vergleichsoperatorenlet a = 5, b = "5";
console.log(a == b); // true (nur Wert)console.log(a === b); // false (Wert UND Typ)
Verwende === für genaue Vergleiche (Wert UND Typ). == vergleicht nur den Wert.
4. Schleifen
For-Schleife
// Klassische for-Schleifefor (let i = 1; i <= 5; i++) {
console.log(`Durchlauf ${i}`);
}
// For-of für Arrayslet früchte = ["Apfel", "Banane", "Orange"];
for (let frucht of früchte) {
console.log(`Ich esse eine ${frucht}`);
}
// For-in für Objektelet person = {name: "Anna", alter: 20, stadt: "Zürich"};
for (let eigenschaft in person) {
console.log(`${eigenschaft}: ${person[eigenschaft]}`);
}
While-Schleife
let countdown = 5;
let result = "";
while (countdown > 0) {
result += countdown + "... ";
countdown--;
}
result += "Start!";
console.log(result);
// Do-While (läuft mindestens einmal)let zahl;
do {
zahl = prompt("Gib eine Zahl zwischen 1 und 10 ein:");
} while (zahl < 1 || zahl > 10);
While-Schleifen laufen solange die Bedingung wahr ist. Vorsicht vor Endlosschleifen!
5. Funktionen
Normale Funktionen
// Funktion ohne Parameterfunctionbegrüssung() {
console.log("Hallo! Willkommen!");
}
// Funktion mit Parameternfunctionaddieren(a, b) {
return a + b;
}
// Funktion mit Default-Parameterfunctionvorstellung(name = "Unbekannt", alter = 0) {
return`Ich bin ${name} und ${alter} Jahre alt`;
}
// Funktionen aufrufenbegrüssung();
let summe = addieren(5, 3);
console.log(vorstellung("Max", 19));
Arrow Functions (Pfeilfunktionen)
// Moderne Art: Arrow Functionsconstquadrat = (x) => {
return x * x;
};
// Kurze Form bei einem Parameterconstverdoppeln = x => x * 2;
// Ohne Parameterconstzufallszahl = () => Math.random();
// Mit mehreren Parameternconstmultiplizieren = (a, b) => a * b;
console.log(quadrat(4)); // 16console.log(verdoppeln(7)); // 14console.log(multiplizieren(3, 4)); // 12
Arrow Functions sind kürzer zu schreiben und haben eine andere "this"-Bindung.
6. Arrays (Listen)
Array-Grundlagen
// Array erstellenlet zahlen = [1, 2, 3, 4, 5];
let namen = ["Anna", "Max", "Lisa"];
let gemischt = [42, "Hallo", true]; // verschiedene Typen möglich// Zugriff auf Elemente (Index startet bei 0)console.log(namen[0]); // "Anna"console.log(namen[2]); // "Lisa"console.log(namen.length); // 3// Elemente ändern
namen[1] = "Maximilian";
console.log(namen); // ["Anna", "Maximilian", "Lisa"]
Array-Methoden
let früchte = ["Apfel", "Banane"];
// Elemente hinzufügen
früchte.push("Orange"); // Am Ende hinzufügen
früchte.unshift("Erdbeere"); // Am Anfang hinzufügen// Elemente entfernenlet letztes = früchte.pop(); // Letztes entfernenlet erstes = früchte.shift(); // Erstes entfernenconsole.log(früchte); // ["Apfel", "Banane"]console.log(letztes); // "Orange"console.log(erstes); // "Erdbeere"// Nützliche Array-Methodenconsole.log(früchte.includes("Apfel")); // trueconsole.log(früchte.indexOf("Banane")); // 1
Array: []
7. Objekte
Objekt-Grundlagen
// Objekt erstellenlet person = {
name: "Anna",
alter: 20,
stadt: "Zürich",
istStudent: true
};
// Zugriff auf Eigenschaftenconsole.log(person.name); // "Anna"console.log(person["alter"]); // 20// Eigenschaften ändern
person.alter = 21;
person.beruf = "Programmiererin"; // Neue Eigenschaft// Eigenschaft löschendelete person.stadt;
console.log(person);
// Verschiedene String-Artenlet einfach = 'Einfache Anführungszeichen';
let doppelt = "Doppelte Anführungszeichen";
let template = `Template Literals mit ${einfach}`;
// String-Eigenschaften und Methodenlet text = "JavaScript ist toll!";
console.log(text.length); // 18console.log(text.toUpperCase()); // "JAVASCRIPT IST TOLL!"console.log(text.toLowerCase()); // "javascript ist toll!"// String-Sucheconsole.log(text.includes("Script")); // trueconsole.log(text.indexOf("ist")); // 11console.log(text.startsWith("Java")); // true
Template Literals
let name = "Anna";
let alter = 20;
let stadt = "Zürich";
// Alte Art (schlecht lesbar)let nachricht1 = "Hallo, ich bin " + name + " und " + alter + " Jahre alt.";
// Moderne Art: Template Literals (mit Backticks)let nachricht2 = `Hallo, ich bin ${name} und ${alter} Jahre alt.`;
// Mehrzeilige Stringslet mehrzeilig = `
Hallo ${name}!
Du wohnst in ${stadt}.
Du bist ${alter} Jahre alt.
`;
// Berechnungen in Template Literalslet rechnung = `Du bist ${2025 - alter} geboren.`;
console.log(mehrzeilig);
Template Literals (Backticks) sind moderner und lesbarer für String-Interpolation.