Gibt es Fälle, in denenKann === halten wenn == nicht?
x == y //false
x === y //true
, dass jemals in JS möglich ist? :)
Gibt es Fälle, in denenKann === halten wenn == nicht?
x == y //false
x === y //true
, dass jemals in JS möglich ist? :)
Es wäre unmöglich. ==
vergleicht Wert, während ===
Wert und Typ vergleicht. Ihr Fall würde eine unmögliche Bedingung erfordern.
a === b -> (typeof(a) == typeof(b)) && (value(a) == value(b))
a == b -> (value(a) == value(b))
Sie können nicht die Wertvergleiche haben im ==
Fall wahr sein, während der exakt gleichen Vergleich in ===
wurde falsch erfordern.
Nein. Das ist nie möglich. ===
prüft auf Typ und Gleichheit. ==
prüft nur auf Gleichheit. Wenn etwas nicht ==
ist, kann es nie ===
sein.
==
- Gibt true zurück, wenn die Operanden gleich sind.
- Gibt true zurück, wenn die Operanden gleich sind und vom gleichen Typ sind.
Also, ich sage nicht möglich.
Kurz gesagt, wenn ===
wahr ist, dann wird ==
wahr zurückgeben. Wenn ===
false zurückgibt, kann ==
möglicherweise nicht false zurückgeben.
Beispiele:
5===5
wahr ist, was bedeutet, dass 5==5
auch wahr sein muss.
'5'===5
ist falsch, und '5'==5
ist wahr.
'6'===5
ist falsch, und '6'==5
ist auch falsch.
Dieses Verhalten ist, weil a===b
überprüft, um sicherzustellen, dass der Wert und die Art des a
und b
gleich ist, während a==b
nur, um sicherzustellen, überprüft, ob ihre Werte gleich sind.
Ich würde nicht so denken. Aber dann wieder, Javascript ist nie kurz von Überraschungen – AmmarCSE
wenn die erste Zeile 'x' oder' y' geändert (mit einem muting Getter oder sogar ein overloaded valueOf), dann könnte es passieren, aber auf seinem Gesicht, nein. – dandavis
der illustrativste und lehrreichste Weg, um zu sehen, dass es nicht möglich ist, ist diese Tabelle zu betrachten https://dorey.github.io/JavaScript-Equality-Table/ –