=== (strikt likhet) jämför värde och typ utan konvertering. == (lös likhet) utför typkonvertering först, vilket leder till överraskande resultat.
js
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (strikt likhet) jämför värde och typ utan konvertering. == (lös likhet) utför typkonvertering först, vilket leder till överraskande resultat.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Konverteringsreglerna är inte uppenbara och leder till buggar. Till exempel är [] == ![] true (en känd särhet). Du vill sällan att JavaScript tyst konverterar typer bakom din rygg under en jämförelse.
Använd alltid === (och !==). Det enda vanliga, avsiktliga undantaget är att kontrollera om något är null eller undefined tillsammans:
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
För allt annat håller strikt likhet jämförelser förutsägbara. För att jämföra objekt behöver du en djup-likhetskontroll (de jämför efter referens, så {a:1} === {a:1} är false).