forked from WEB-IMB-WS2526/lab-development-imb
105 lines
2.6 KiB
JavaScript
105 lines
2.6 KiB
JavaScript
// DATENTYPEN
|
|
let zahl = 42;
|
|
let text = "Hallo Welt";
|
|
let wahr = true;
|
|
let undefiniert;
|
|
let leer = null;
|
|
let symbol = Symbol("id"); // erzeugt einzigartigen Wert
|
|
let gross = 123n; // bigint: für sehr große Ganzzahlen
|
|
|
|
// UNTERSCHIED ZWISCHEN null UND undefined
|
|
console.log(typeof undefiniert); // "undefined"
|
|
console.log(typeof leer); // "object"
|
|
console.log(undefiniert == null); // true → lose Gleichheit, beide gelten als "leer"
|
|
console.log(undefiniert === null); // false → strikte Gleichheit, Typen sind verschieden
|
|
|
|
// OBJEKTE MIT METHODEN
|
|
|
|
// Beispiel: const mit Objekt
|
|
const person = { name: "Moritz" };
|
|
person.name = "Max";
|
|
// person = {} //nicht erlaubt, weil const
|
|
|
|
// Beispiel: Objekt mit Methode
|
|
let benutzer = {
|
|
name: "Galinda",
|
|
alter: 25,
|
|
begruessen: function() {
|
|
console.log("Hallo, ich bin " + this.name);
|
|
}
|
|
};
|
|
benutzer.begruessen(); // Methode aufrufen
|
|
console.log(benutzer["alter"]); // Zugriff via Schlüssel
|
|
|
|
// KONTROLLFLUSS
|
|
if (zahl > 40) {
|
|
console.log("Zahl ist größer als 40");
|
|
} else if (zahl === 40) {
|
|
console.log("Zahl ist genau 40");
|
|
} else {
|
|
console.log("Zahl ist kleiner als 40");
|
|
}
|
|
|
|
switch (text) {
|
|
case "Hallo Welt":
|
|
console.log("Begrüßung erkannt");
|
|
break;
|
|
case "Hi":
|
|
console.log("Kurzform erkannt");
|
|
break;
|
|
default:
|
|
console.log("Unbekannter Text");
|
|
}
|
|
|
|
switch (42) {
|
|
case "42": // kein Match, da Typ unterschiedlich -> Vergleich basiert auf strikter Gleichheit (===)
|
|
console.log("String");
|
|
break;
|
|
case 42:
|
|
console.log("Number");
|
|
break;
|
|
}
|
|
|
|
for (let i = 0; i < 3; i++) {
|
|
console.log("Zähler:", i);
|
|
}
|
|
|
|
// ARRAYS
|
|
let obst = ["Apfel", "Banane", "Kirsche"];
|
|
obst.push("Mango");
|
|
console.log(obst[1]);
|
|
obst.forEach(function(f) {
|
|
console.log("Frucht:", f);
|
|
});
|
|
const zahlen = [1, 2, 3];
|
|
// map erzeugt ein neues Array
|
|
const verdoppelt = zahlen.map(n => n * 2);
|
|
console.log(verdoppelt); // [2, 4, 6]
|
|
|
|
// SPREAD-OPERATOR
|
|
const extendedZahlen = [...zahlen, 4];
|
|
console.log(extendedZahlen);
|
|
|
|
const extendedBenutzer = {...benutzer, beiname: "die Gute"}
|
|
console.log(extendedBenutzer["name"] + " " + extendedBenutzer["beiname"])
|
|
|
|
// ERROR HANDLING
|
|
// try-catch-finally funktioniert ähnlich wie in Java
|
|
try {
|
|
// Fehler absichtlich auslösen
|
|
throw new Error("Etwas ist schiefgelaufen");
|
|
} catch (e) {
|
|
console.error("Fehler:", e.message); // Fehlerbehandlung
|
|
} finally {
|
|
console.log("Cleanup abgeschlossen"); // wird immer ausgeführt
|
|
}
|
|
|
|
// JSON
|
|
// Objekt → JSON-String
|
|
const obj = { name: "Margaret", alter: 13 };
|
|
const jsonStr = JSON.stringify(obj);
|
|
console.log(jsonStr);
|
|
|
|
// JSON-String → Objekt
|
|
const parsed = JSON.parse(jsonStr);
|
|
console.log(parsed.alter); |