Zum Hauptinhalt springen

Vergleichsoperatoren

Gleichheitsoperatoren

OperatorNameBeschreibung
===Strikte GleichheitGibt true zurück wenn Wert und Typ gleich sind
!==Strikte UngleichheitGibt true zurück wenn Wert oder Typ sich unterscheiden
==Lose GleichheitGibt true zurück wenn die Werte gleich sind nach einer Typumwandlung
!=Lose UngleichheitGibt true zurück wenn die Werte sich unterscheiden nach einer Typumwandlung

Beispiele

1 === 1 // true
1 === "1" // false (unterschiedliche Typen)

1 == "1" // true (Der String wird in eine Nummer umgewandelt)
0 == false // true
null == undefined // true

Wichtig: Immer === & !== über == & != bevorzugen, um unerwartete Typumwandlungen zu vermeiden.

Relationale Operatoren

OperatorNameBeispiel
>Größer als5 > 3 => true
<Kleiner als5 < 3 => false
>=Größer oder gleich als5 >= 5 => true
<=Kleiner oder gleich als3 <= 5 => true

Nullwerte und spezielle Vergleiche

ExpressionErgebnisGrund
NaN === NaNfalseNaN ist nicht gleich zu etwas
null === undefinedfalseUnterschiedliche Typen
null == undefinedtrueSpezialregel in loser Gleichheit
null == 0falsenull ist nur lose gleich mit undefined

Operatorprioritäten

Operatoren mit einer höheren Priorität werden als erstes ausgewertet. Operatoren mit der gleichen Priorität werden von links nach rechts ausgewertet.

PrioritätOperatorBeschreibung
1 (höchste)()Gruppierung
2!Logisches NOT
3>, <, >=, <=Relationale
4===, !==, ==, !=Gleichheit
5&&Logisches AND
6||Logisches OR
7 (niedrigste)??Nullish-Coalescing

Beispiele

const result = a > 0 && b === 1 || c !== 2;

// && hat eine höhere Priorität als ||, daher entspricht das:
const result = (a > 0 && b === 1) || c !== 2;

// NICHT:
const result = a > 0 && (b === 1 || c !== 2);

// Lösung:
const result = a > 0 && (b === 1 || c !== 2);

Tipp: Im Zweifelsfall immer () Klammern verwenden um die beabsichtigte Auswertungsreihenfolge klar zu machen