Vergleichsoperatoren vergleichen die Werte zweier Operanden und bewerten, ob die
Anweisung, die sie bilden, ist true
oder false
. Im folgenden Beispiel wird die Methode
Strikt-Gleichheitsoperator (===
) zum Vergleichen zweier Operanden: der Ausdruck
2 + 2
und den Wert 4
. Da das Ergebnis des Ausdrucks und die Zahl
4
gleich sind, wird dieser Ausdruck als true
ausgewertet:
2 + 2 === 4
> true
Typ „Erzwingen“ und „Gleichheit“
Zwei der am häufigsten verwendeten Vergleichsoperatoren sind ==
für lose Gleichheit.
und ===
für strikte Gleichheit. ==
führt einen lockeren Vergleich zwischen zwei
Werte, indem Sie die Operanden nach Möglichkeit in übereinstimmende Datentypen erzwingen. Für
Beispiel: 2 == "2"
gibt true
zurück, obwohl der Vergleich durchgeführt wird.
zwischen einem Zahlenwert und einem Stringwert.
2 == 2
> true
2 == "2"
> true
Dasselbe gilt für !=
, bei dem nur true
zurückgegeben wird, wenn die Operanden
nicht lose gleich sind.
2 != 3
> true
2 != "2"
> false
Bei strikten Vergleichen mit ===
oder !==
wird der Typ nicht erzwungen. Für eine
strengen Vergleich mit true
ausgewertet werden soll, müssen die zu vergleichenden Werte die
und zwar denselben Datentyp. Aus diesem Grund gibt 2 == "2"
true
zurück, aber 2 === "2"
gibt false
zurück:
2 === 3
> false
2 === "2"
> false
Verwenden Sie ===
, wenn Sie Mehrdeutigkeiten aus dem automatischen Erzwingen vermeiden möchten.
möglich.
Operator | Beschreibung | Nutzung | Ergebnis |
---|---|---|---|
=== | Streng gleich | 2 === 2 | wahr |
!== | Nicht genau gleich | 2 !== "2" | wahr |
== | Gleich | 2 == "2" | wahr |
!= | Ungleich | 2 != "3" | wahr |
> | Größer als | 3 > 2. | wahr |
>= | Größer als oder gleich | 2 >= 2 | wahr |
< | Weniger als | 2 < 3. | wahr |
<= | Kleiner als oder gleich | 2 <= 3 | wahr |
Wahr und falsch
Alle Werte in JavaScript sind implizit true
oder false
und können zu
den entsprechenden booleschen Wert, z. B. durch die Angabe von „loosely equal“
Vergleichsoperator an. Eine begrenzte Anzahl von Werten wird zu false
erzwungen:
0
null
undefined
NaN
- Leerer String (
""
)
Alle anderen Werte werden in true
umgewandelt, einschließlich String, der einen oder mehrere enthält
und alle Zahlen ungleich null. Sie werden allgemein als „Wahrheit“ bezeichnet. und
"Falsch" Werte.
"My string" == true
> true
100 == true
> true
0 == true
> false
Logische Operatoren
Verwenden Sie die logischen Operatoren AND (&&
), OR (||
) und NOT (!
), um den Ablauf eines Skripts auf der Grundlage der Auswertung von zwei oder mehr bedingten Anweisungen zu steuern:
2 === 3 || 5 === 5;
> true
2 === 2 && 2 === "2"
> false
2 === 2 && !"My string."
> false
Ein logischer NOT-Ausdruck (!
) negiert den Wahrheits- oder Falschwert eines Operanden und wird mit true
ausgewertet, wenn der Operand false
ergibt, und mit false
, wenn der Operand true
ergibt:
true
> true
!true
> false
!false
> true
Verwendung des logischen NOT-Operators (!
) vor einem anderen Datentyp, z. B. einem
eine Zahl oder eine Zeichenfolge, wandelt diesen Wert in einen booleschen Wert um
Falscher Wert des Ergebnisses.
"string"
> "string"
!"string"
> false
0
> 0
!0
> true
Es ist üblich, zwei NOT-Operatoren zu verwenden, um Daten schnell in ihre übereinstimmender boolescher Wert:
!!"string"
> true
!!0
> false
Die logischen UND- und ODER-Operatoren selbst führen keine Zwingung aus. Sie den Wert eines der beiden auszuwertenden Operanden zurückgeben, wobei die ausgewählten der durch diese Auswertung bestimmt wurde.
Logisches UND (&&
) gibt den ersten seiner beiden Operanden nur dann zurück, wenn dieser Operand
wird mit false
ausgewertet, andernfalls der zweite Operand. Im Vergleich dazu,
als boolesche Werte ausgewertet werden, wird nur dann true
zurückgegeben, wenn die Operanden auf beiden Seiten
des logischen AND als true
ausgewertet. Wenn eine der Seiten false
ergibt,
gibt false
zurück.
true && false
> false
false && true
> false
false && false
> false
true && true
> true
Wenn &&
mit zwei nicht booleschen Operanden verwendet wird, wird der erste Operand zurückgegeben.
unverändert, wenn sie in false
erzwungen werden kann. Ob der erste Operand erzwungen werden kann
auf true
gesetzt ist, wird der zweite Operand unverändert zurückgegeben:
false && "My string"
> false
null && "My string"
> null
"My string" && false
> false
"My string" && "My second string"
> "My second string"
2 === 2 && "My string"
> "My string"
Logisches ODER (||
) gibt den ersten seiner beiden Operanden nur dann zurück, wenn dieser Operand
wird mit true
ausgewertet, andernfalls der zweite Operand. Im Vergleich dazu,
als boolesche Werte ausgewertet werden. Dies bedeutet, dass true
zurückgegeben wird, wenn einer der Operanden
wird als true
ausgewertet. Wenn keine Seite als true
ausgewertet wird, wird Folgendes zurückgegeben:
false
:
true || false
> true
false || true
> true
true || true
> true
false || false
> false
Wird ||
mit zwei nicht booleschen Operanden verwendet, wird der erste Operand zurückgegeben.
unverändert, wenn sie in true
erzwungen werden könnte. Ob der erste Operand erzwungen werden kann
auf false
gesetzt ist, wird der zweite Operand unverändert zurückgegeben:
false || "My string"
> "My string"
null || "My string"
> "My string"
"My string" || false
> "My string"
"My string" || "My second string"
> "My string"
2 === 2 || "My string"
> true
Nullish-Koalescing-Operator
Aufgeführt in ES2020,
den „Nullish Coalescing Operator“ (??
) gibt nur dann den ersten Operanden zurück, wenn
Operand einen anderen Wert als null
oder undefined
hat. Andernfalls wird zurückgegeben,
den zweiten Operanden.
null ?? "My string"
> "My string"
undefined ?? "My string"
> "My string"
true ?? "My string";
> true
??
ähnelt einem logischen ODER, der erste Operand ist jedoch strenger.
bewertet. ||
gibt den zweiten Operanden für jeden Ausdruck zurück, der sein können:
zu false
erzwungen, einschließlich undefined
und null
. ??
gibt das zweite
Operand, wenn der erste Operand etwas anderes als null
oder undefined
ist, auch wenn
möglicherweise zu false
gezwungen werden:
0 ?? "My string";
> 0
false ?? "My string";
> false
undefined ?? "My string";
> "My string"
Logische Zuweisungsoperatoren
Mit Zuweisungsoperatoren können Sie den Wert eines zweiten Operators einem ersten
. Das gängigste Beispiel dafür ist ein einzelnes Gleichheitszeichen (=
), das für Folgendes verwendet wird:
Weisen Sie einer deklarierten Variablen einen Wert zu.
Logische Zuweisungsoperatoren verwenden, um einer Variablen bedingt einen Wert zuzuweisen basierend auf dem Wahrheits- oder Falschwert dieser Variablen.
Der logische AND-Zuweisungsoperator (&&=
) wertet den zweiten Operanden und
dem ersten Operanden zuweist, wenn der erste Operand nur dann als Ergebnis gewertet wird.
true
. Wenn der erste Operand wahr ist, weisen Sie ihm den Wert
den zweiten Operanden ein:"
let myVariable = false;
myVariable &&= 2 + 2;
> false
myVariable = true;
myVariable &&= 2 + 2;
> 4
Der Wahrheits- oder Falschwert des ersten Operanden bestimmt, ob eine Zuweisung
ausgeführt wird. Wenn Sie jedoch versuchen, den ersten Operanden mithilfe eines Vergleichs
ergibt den booleschen Wert true
oder false
, dem kein
Wert:
let myVariable = 5;
myVariable > 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment
Der logische OR-Zuweisungsoperator (||=
) wertet den zweiten Operanden aus und
Dem ersten Operanden zuweisen, wenn der erste Operand false
ist:
effektiv "Wenn der erste Operand falsch ist, weisen Sie ihm den Wert des zweiten Operanden
Operand stattdessen:"
let myVariable = false;
myVariable ||= 2 + 2;
> 4
myVariable = true;
myVariable ||= 2 + 2;
> true
Wissen testen
Welcher Operator gibt „streng gleich“ an?
!=
=
==
===