JavaScript === vs ==

Harshit Jindal 12 Oktober 2023
  1. Loser Gleichheitsoperator (==) in JavaScript
  2. Strenger Gleichheitsoperator (===) in JavaScript
JavaScript === vs ==

Vergleichsoperatoren helfen uns festzustellen, ob zwei Variablen gleich sind oder einem bestimmten Kriterium folgen. Bei günstigen Vergleichsergebnissen wird true zurückgegeben; andernfalls gibt es false zurück. Dieses Tutorial erklärt das verwirrendste Thema unter den Vergleichsoperatoren und lehrt, wann welcher Gleichheitsoperator verwendet wird (== oder ===).

Ein einfaches gleich = unterscheidet sich stark von doppelten gleich == und dreifachen gleich ===, da es sich um eine Zuweisungsoperation handelt und es sich um Vergleichsoperatoren handelt. Daher besteht die Verwechslung im Allgemeinen zwischen == und ===.

Loser Gleichheitsoperator (==) in JavaScript

Der Operator == oder Gleichheitsoperator wird auch abstrakter Vergleichsoperator genannt. Es wird abstrakt genannt, weil es sich nur um den Wert und nicht um den Typ der Variablen handelt. Der Operator == führt die Konvertierung von Variablenwerten in den gleichen Typ (Typ-Zwang) durch, bevor er sie miteinander vergleicht und gibt true zurück, wenn die konvertierten Operanden gleich sind. Da der Operator eine Typkonvertierung durchführen muss, ist er in der Regel etwas langsamer als der Operator ===.

Um zu verstehen, wann welcher Operator verwendet werden soll, müssen wir uns zunächst ein wenig mit Typzwang befassen. Es gibt zwei Arten:

  1. Expliziter Zwang: Dies geschieht explizit durch Code mit eingebauten Methoden. Zum Beispiel: Um einen String "42" in eine Zahl umzuwandeln, müssen wir Number("42") schreiben. Auf diese Weise verwenden wir die explizite Methode zur Typkonvertierung Number(), um einen String in eine Zahl umzuwandeln.
  2. Impliziter Zwang: Er wird implizit von der Sprache ausgeübt. Es wird normalerweise ausgeführt, wenn wir zwei verschiedene Arten von Operanden mit einem Operator verwenden. Zum Beispiel: Wenn wir 1 + "" ausführen. Es gibt eine Zahl und eine Zeichenkette, die nicht direkt hinzugefügt werden können, daher wandelt der JavaScript-Typ die Zahl in eine Zeichenkette um, da sie nur so hinzugefügt werden können, und gibt eine Zeichenkette "1" zurück.
23 == '23'         // returns true
true + false == 1  // returns true
undefined ==
    null         // returns true
        [] == 0  // returns true

Strenger Gleichheitsoperator (===) in JavaScript

Der Operator === oder Identitätsoperator wird auch als strikter Vergleichsoperator bezeichnet. Sie wird strikt genannt, weil sie nur dann true zurückgibt, wenn sowohl der Typ als auch der Wert beider Operanden gleich sind. Es führt keine Art von Konvertierung durch; Daher ist er tendenziell schneller als der Operator ==.

true === true  // returns true
true === 1     // returns false

Daher erfordert die Entscheidung, den Operator == oder === zu wählen, einen Typzwang. Wenn man mit Typzwang nicht vertraut ist, sollte man beim strikten Gleichheitsoperator bleiben.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Verwandter Artikel - JavaScript Operator