JavaScript 中有严格比较和类型转换比较:
严格比较(例如 ===)在不允许强制转型的情况下检查两个值是否相等;
抽象比较(例如 ==)在允许强制转型的情况下检查两个值是否相等。
var a = "42";
var b = 42;
a == b; // true
a === b; // false
一些简单的规则:
如果被比较的任何一个值可能是 true 或 false,要用 ===,而不是 ==;
如果被比较的任何一个值是这些特定值(0、“”或 []),要用 ===,而不是 ==;
在其他情况下,可以安全地使用 ==。它不仅安全,而且在很多情况下,它可以简化代码,并且提升代码可读性。