Mogelijke duplicaten:
Javascript === vs ==: Maakt het uit welke “gelijk” operator ik gebruiken?
Javascript operator! ==
Kijk naar deze commit
Is !=
hetzelfde als !==
in JavaScript?
Antwoord 1, Autoriteit 100%
Ze zijn subtiel niet hetzelfde.
!=
controleert de waarde
!==
controleert de waarde en het type
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
In het vorige voorbeeld. De eerste helft van de expressies een tekenreeks, de tweede helft een geheel getal.
Antwoord 2, Autoriteit 12%
Van
http://en.wikipedia.org/wiki/JavaScript_syntax#Operators
! == niet identiek
! = Niet gelijk aan
AND “identieke wijze gelijk en hetzelfde type.”
Van
http://docstore.mik.ua/orelly/webprog/jscript/ ch05_04.htm
“In JavaScript, getallen, strings, en Booleaanse waarden worden via hun waarde vergeleken.
…
Anderzijds, objecten, arrays en functies worden via verwijzing vergeleken. “
–
Dus in het kort zijn ze hetzelfde? Nee, want er is een extra proef met! == (over! =) Voor soort gelijkheid als evenbeeld.
Antwoord 3, autoriteit 8%
Nee, het is niet hetzelfde. Zie bijvoorbeeld hier.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
Antwoord 4, autoriteit 5%
Het grote verschil is dat != type dwang uitvoert. Dat wil zeggen dat de ene waarde effectief naar de andere wordt gecast voordat de gelijkheid wordt gecontroleerd. Dit is waarom, zoals in het antwoord van Amadiere:
'1' != 1
evalueert naar onwaar. Hetzelfde geldt voor == v. ===. Vermijd in het algemeen == en != tenzij u specifiek wilt dat dwang wordt uitgevoerd. Gebruik === en !== en controleer voor precies het resultaat dat u zoekt.
Antwoord 5
Controleert niet alleen de waarde, maar ook het soort dingen dat wordt vergeleken. Dit is ook hetzelfde in php en ook in sommige andere talen.