Vergleichsoperator

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?

=
!=
===
==