JavaScript has both strict and type–converting comparisons:
- Strict comparison (e.g., ===) checks for value equality without allowing coercion
- Abstract comparison (e.g. ==) checks for value equality with coercion allowed
var a = "42";
var b = 42;
a == b; // true
a === b; // false
Some simple equality rules:
- If either value (aka side) in comparison could be the
true
orfalse
value, avoid==
and use===
. - If either value in comparison could be of these specific values (
0
,""
, or[]
— empty array), avoid==
and use===
. - In all other cases, you’re safe to use
==
. Not only is it safe, but in many cases, it simplifies your code in a way that improves readability.
50