=== (streng lighed) sammenligner værdi og type uden konvertering. == (løs lighed) udfører først type coercion, hvilket fører til overraskende resultater.
js
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (streng lighed) sammenligner værdi og type uden konvertering. == (løs lighed) udfører først type coercion, hvilket fører til overraskende resultater.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Konverteringsreglerne er ikke åbenlyse og fører til fejl. For eksempel er [] == ![] true (en berygtet særhed). Du vil sjældent have, at JavaScript stiltiende konverterer typer bag din ryg under en sammenligning.
Brug altid === (og !==). Den eneste almindelige, bevidst undtagelse er at kontrollere null eller undefined sammen:
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
For alt andet holder streng lighed sammenligninger forudsigelige. For at sammenligne objekter skal du have en deep-equality-kontrol (de sammenligner efter reference, så {a:1} === {a:1} er false).