⚡ JavaScript

Vergleichsoperatoren und logische Operatoren — JavaScript

Was ist das und wozu?

Stell dir vor, du bist ein Roboter, der Befehle ausführt. Um Entscheidungen zu treffen, musst du Dinge vergleichen und Bedingungen prüfen können. Zum Beispiel:

  • Vergleich: „Hast du 100 Rubel?“ (du vergleichst dein Geld mit der Zahl 100).
  • Logik: „Hast du 100 Rubel UND bist du nicht hungrig?“ (du prüfst zwei Bedingungen gleichzeitig).

In JavaScript helfen Vergleichsoperatoren und logische Operatoren dem Computer, solche Fragen zu beantworten. Das Ergebnis ist immer true (wahr) oder false (falsch). Es ist wie eine Ampel: Grün – du kannst fahren (true), Rot – du musst anhalten (false).

Wozu braucht man das? Ohne sie wären Programme langweilig – sie würden einfach Befehle der Reihe nach ausführen. Mit ihnen kann das Programm auf verschiedene Situationen reagieren: zum Beispiel, wenn der Benutzer das richtige Passwort eingegeben hat – ihn hereinlassen, wenn nicht – einen Fehler ausgeben.

In Python funktionieren diese Operatoren fast genauso, aber in JavaScript gibt es eigene Besonderheiten. Die werden wir uns ansehen.

Codebeispiele mit Erklärung

1. Basisvergleichsoperatoren: >, <, >=, <=

Die einfachsten – wie im Matheunterricht. Wir vergleichen Zahlen:

// Beispiel 1: Größer oder kleiner?
let alter = 12;
let darfEintreten = alter >= 12; // Darf man eintreten, wenn das Alter 12 oder mehr ist?
console.log(darfEintreten); // Gibt aus: true (weil 12 >= 12 — wahr)

// Beispiel 2: Vergleich mit einem Schwellenwert
let temperatur = 30;
let heiss = temperatur > 25;   // Größer als 25?
console.log(heiss); // true (30 > 25 — wahr)

let kalt = temperatur < 10; // Kleiner als 10?
console.log(kalt); // false (30 ist nicht kleiner als 10)

// Beispiel 3: Strings kann man auch vergleichen!
console.log("Wassermelone" > "Banane"); // false
// Warum? Buchstaben werden alphabetisch verglichen: 'W' (23. Buchstabe) ist größer als 'B' (2. Buchstabe)
// In Python ist es dasselbe, aber die Groß-/Kleinschreibung ist anders

Wichtig: In JavaScript werden Strings nach dem Unicode-Code verglichen (wie in einer Tabelle). „a“ ist kleiner als „z“, und „A“ ist kleiner als „a“. Es ist wie in einem Wörterbuch: zuerst kommen die Großbuchstaben, dann die Kleinbuchstaben.

2. Gleichheitsoperatoren: == und ===

Hier wird es interessant! In JavaScript gibt es zwei Möglichkeiten zu prüfen, ob Werte gleich sind:

  • == – „lockere Gleichheit“ (vergleicht Werte, kann aber Typen umwandeln)
  • === – „strenge Gleichheit“ (vergleicht sowohl Wert als auch Datentyp)
// Beispiel 4: Vergleich von Zahlen und Strings
let zahl = 5;
let string = "5";

console.log(zahl == string);   // true — weil 5 gleich 5 ist (JavaScript hat den String in eine Zahl umgewandelt)
console.log(zahl === string);  // false — weil Zahl (number) nicht gleich String (string) ist!

// In Python gibt es das nicht: "5" == 5 ergibt sofort False, ohne Umwandlung

// Beispiel 5: Vergleich mit true/false
console.log(1 == true);  // true — weil true in 1 umgewandelt wird
console.log(1 === true); // false — unterschiedliche Typen (Zahl vs. boolean)

console.log(0 == false); // true
console.log(0 === false); // false

// Beispiel 6: Leere Werte
console.log(null == undefined); // true — spezielle JS-Regel
console.log(null === undefined); // false — unterschiedliche Typen

// In Python gibt es kein undefined, nur None, und es ist nur mit sich selbst gleich

Tipp für Anfänger: Verwende immer === (strenge Gleichheit), um Überraschungen zu vermeiden. Es ist wie in der Mathematik: 5 und „5“ sind verschiedene Dinge, auch wenn sie ähnlich aussehen.

3. Logischer Operator && (UND)

Der Operator „UND“ (AND) gibt true nur dann zurück, wenn beide Bedingungen wahr sind. Im Leben ist das wie: „Ich gehe spazieren, wenn ich meine Hausaufgaben gemacht habe UND Mama es erlaubt.“

// Beispiel 7: Prüfung von zwei Bedingungen
let alter = 14;
let hatTicket = true;

let darfInsKino = (alter >= 12) && (hatTicket === true);
console.log(darfInsKino); // true — Alter passt UND Ticket ist vorhanden

// Wenn das Alter 10 wäre:
alter = 10;
darfInsKino = (alter >= 12) && (hatTicket === true);
console.log(darfInsKino); // false — erste Bedingung ist falsch, zweite wahr, aber UND erfordert beide

// Beispiel 8: Komplexe Bedingung
let note = 4;
let verhalten = "ausgezeichnet";

let wirdGelobt = (note === 5) && (verhalten === "ausgezeichnet");
console.log(wirdGelobt); // false — Note ist nicht 5, obwohl das Verhalten ausgezeichnet ist

// In Python schreibt man es genauso: and

Lifehack: JavaScript ist „faul“ – wenn die erste Bedingung in && falsch ist, wird die zweite gar nicht geprüft. Das nennt man „Kurzschlussauswertung“. Spart Zeit!

4. Logischer Operator || (ODER)

Der Operator „ODER“ (OR) gibt true zurück, wenn mindestens eine Bedingung wahr ist. Wie im Leben: „Ich gehe spazieren, wenn ich meine Hausaufgaben gemacht habe ODER wenn die Sonne scheint.“

// Beispiel 9: Auswahl aus zwei Optionen
let hatGeld = false;
let hatGeschenk = true;

let kannSpielzeugKaufen = hatGeld || hatGeschenk;
console.log(kannSpielzeugKaufen); // true — kein Geld, aber ein Geschenk (eine Bedingung ist wahr)

// Beispiel 10: Altersprüfung
let benutzerAlter = 17;
let eintrittErlaubt = (benutzerAlter >= 18) || (benutzerAlter >= 16 && hatTicket);
// Wenn Alter >=18 ODER (Alter >=16 UND Ticket vorhanden)
console.log(eintrittErlaubt); // false — 17 ist nicht >=18, und obwohl 17>=16, ist hatTicket nicht definiert (undefined — das ist false)

// Beispiel 11: Standardwerte
let name = "";
let angezeigterName = name || "Gast";
console.log(angezeigterName); // "Gast" — weil ein leerer String als false gilt

// In Python: name or "Gast" — funktioniert genauso

Trick: || ist auch „faul“ – wenn die erste Bedingung wahr ist, wird die zweite nicht geprüft. Das wird verwendet, um Standardwerte festzulegen.

5.