=== (strikte Gleichheit) vergleicht Wert und Typ ohne Konvertierung. == (lockere Gleichheit) führt zuerst type coercion durch, was zu überraschenden Ergebnissen führt.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (strikte Gleichheit) vergleicht Wert und Typ ohne Konvertierung. == (lockere Gleichheit) führt zuerst type coercion durch, was zu überraschenden Ergebnissen führt.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Die Konvertierungsregeln sind nicht offensichtlich und führen zu Fehlern. Zum Beispiel ist [] == ![] gleich true (eine berüchtigte Besonderheit). Du möchtest kaum, dass JavaScript während eines Vergleichs im Hintergrund Typen stillschweigend konvertiert.
Verwenden Sie immer === (und !==). Die einzige häufige, beabsichtigte Ausnahme ist die Überprüfung auf null oder undefined zusammen:
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
Für alles andere hält strikte Gleichheit Vergleiche vorhersagbar. Um Objekte zu vergleichen, benötigen Sie eine deep-equality-Überprüfung (sie vergleichen nach Referenz, also ist {a:1} === {a:1} gleich false).