我
`==`和`===`的区别是什么?
难度:
==
是抽象相等运算符,而===
是严格相等运算符。==
运算符是在进行必要的类型转换后,再比较。===
运算符不会进行类型转换,所以如果两个值不是相同的类型,会直接返回false
。使用==
时,可能发生一些特别的事情,例如:
js
1 == "1"; // true
1 == [1]; // true
1 == true; // true
0 == ""; // true
0 == "0"; // true
0 == false; // true
我的建议是从不使用==
运算符,除了方便与null
或undefined
比较时,a == null
如果a
为null
或undefined
将返回true
。
js
var a = null;
console.log(a == null); // true
console.log(a == undefined); // true