Booleans und Vergleiche
5 == "5" ist true, aber 5 === "5" ist false. Das dreifache Gleichheitszeichen prüft außerdem, ob beide Seiten denselben Typ haben.
Fragen mit Ja oder Nein als Antwort
Programme stellen ständig Fragen. Ist das Passwort lang genug? Hat die Spielerin keine Leben mehr? Ist heute Wochenende? Jede dieser Fragen hat eine von zwei Antworten, und JavaScript stellt sie mit den beiden booleschen Werten true und false dar. Booleans sind nach George Boole benannt, dem Mathematiker des neunzehnten Jahrhunderts, der eine Algebra von wahr und falsch ausgearbeitet hat. Für sich genommen sind sie nicht besonders spannend, aber mit ihnen kann ein Programm Entscheidungen treffen, und darum geht es in der nächsten Einheit.
Vergleichsoperatoren
Ein Vergleich nimmt zwei Werte und ergibt einen Boolean. Die sechs häufigsten stehen unten. Beachte, dass „gleich“ mit drei Gleichheitszeichen geschrieben wird, weil ein einzelnes = schon „speichere einen Wert“ bedeutet.
| Operator | Frage | Beispiel | Ergebnis |
|---|---|---|---|
| === | gleich? | 4 === 4 | true |
| !== | ungleich? | 4 !== 4 | false |
| < | kleiner als? | 3 < 8 | true |
| > | größer als? | 3 > 8 | false |
| <= | kleiner oder gleich? | 8 <= 8 | true |
| >= | größer oder gleich? | 7 >= 8 | false |
Wie eine Rechnung ist auch ein Vergleich ein Ausdruck, du kannst ihn also ausgeben oder in einer Variablen speichern: const isAdult = age >= 18; legt je nach Alter true oder false in isAdult ab. Namen für boolesche Variablen beginnen oft mit is, has oder can, so liest sich der Code wie eine Frage.
Warum === und nicht ==
JavaScript hat auch ein doppeltes Gleichheitszeichen, ==, die sogenannte lose Gleichheit. Vor dem Vergleich versucht sie, beide Seiten in denselben Typ umzuwandeln, und das liefert schwer vorhersagbare Ergebnisse: 5 == "5" ist true, und 0 == "" ebenfalls. Das dreifache Gleichheitszeichen ===, die strikte Gleichheit, wandelt nie um. Unterscheiden sich die Typen, ist die Antwort einfach false. MDN und die meisten Styleguides empfehlen === und !== für den Alltag, und dieser Kurs verwendet sie durchgehend.
console.log(5 === 5); // true
console.log(5 === "5"); // false
// lose Gleichheit, besser vermeiden:
console.log(5 == "5"); // true
console.log("cat" !== "dog"); // trueAuch Strings lassen sich vergleichen. === prüft, ob zwei Strings genau dieselben Zeichen haben, Großbuchstaben eingeschlossen, also ist "Yes" === "yes" false. Die Operatoren < und > vergleichen Strings Zeichen für Zeichen anhand ihrer Zeichencodes. Bei kleingeschriebenen Wörtern ist das nah an der Wörterbuchreihenfolge: "apple" < "banana" ist true. Großbuchstaben kommen in dieser Reihenfolge vor allen Kleinbuchstaben, deshalb ist auch "Zebra" < "apple" true.
Antworten mit &&, || und ! verknüpfen
Echte Fragen haben oft mehrere Teile. Ein Fahrgeschäft verlangt vielleicht eine Größe von mindestens 120 cm und ein Alter von mindestens 8. JavaScript verknüpft boolesche Antworten mit logischen Operatoren. && (und) ist nur true, wenn beide Seiten true sind. || (oder) ist true, wenn mindestens eine Seite true ist. ! (nicht) dreht einen Boolean um, also ist !true false.
const height = 130;
const age = 7;
console.log(height >= 120 && age >= 8); // false
console.log(height >= 120 || age >= 8); // true
console.log(!(age >= 8)); // trueDurchgerechnetes Beispiel. Ist ein Tag ein Wochenendtag? day === "Sat" || day === "Sun". Beachte, dass du day === auf beiden Seiten wiederholen musst. day === "Sat" || "Sun" liest sich wie ein normaler Satz, tut aber nicht, was du meinst, weil "Sun" allein kein Vergleich ist. Vergleiche werden vor && und || ausgewertet, also braucht height >= 120 && age >= 8 keine zusätzlichen Klammern, auch wenn sie nie schaden.
Noch eine Idee, die dir später begegnet: Wenn JavaScript einen Boolean braucht, aber einen anderen Wert bekommt, behandelt es einige Werte als false. Diese falsy-Werte sind false, 0, der leere String "", null, undefined und NaN. Alles andere zählt als true, auch "0" und "false" als Strings.
und && braucht beide true. oder || braucht eins true. nicht ! dreht die Antwort um.
| boolean (Wahrheitswert) | true oder false |
| === | Strikte Gleichheit: gleicher Wert und gleicher Typ |
| !== | Strikte Ungleichheit: nicht dasselbe |
| == | Lose Gleichheit: wandelt zuerst Typen um (vermeiden) |
| && | und: nur true, wenn beide Seiten true sind |
| || | oder: true, wenn mindestens eine Seite true ist |
| ! | nicht: vertauscht true und false |
| falsy | false, 0, "", null, undefined und NaN |
- Was gibt das aus?
console.log(7 > 7);- true
- false
- Was gibt das aus?
console.log(7 >= 7);- true
- false
- Was gibt das aus?
console.log(3 === "3");- true
- false
- Was gibt das aus?
console.log(3 == "3");- true
- false
- Was gibt das aus?
console.log(true && false);- true
- false
- Was gibt das aus?
console.log(true || false);- true
- false
- Was gibt das aus?
const x = 12; console.log(x > 10 && x < 20);- true
- false
- Was gibt das aus?
console.log(!(5 > 2));- true
- false
- Was gibt das aus?
console.log("Yes" === "yes");- true
- false
- Was gibt das aus?
console.log("apple" < "banana");- true
- false
- Welcher Wert ist falsy?
"0"0"false"
- Was prüft richtig, ob day "Sat" oder "Sun" ist?
day === "Sat" || "Sun"day === "Sat" || day === "Sun"day === "Sat" && day === "Sun"
- Vergleiche ergeben true oder false.
- === und !== verwenden; == wandelt Typen um und sorgt für Überraschungen.
- && braucht beide, || braucht eins, ! dreht um.
- Auf jeder Seite von || und && den vollständigen Vergleich wiederholen.
- falsy-Werte: false, 0, "", null, undefined, NaN.
Quellen zu diesem Kurs (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Abgerufen: 2026-10-17