考虑使用以下JavaScript代码(在Firefox中测试):
function f(a) {
if (a == undefined) {
alert('undefined');
}
if (a == null) {
alert('null');
}
}
f();
显示两个警报,表明两个陈述均为真。
你能提供合理的解释吗?
答案 0 :(得分:10)
==
是一个“软”等式运算符
它使用类型强制来比较两个等价的对象。
以下所有情况均属实:
42 == "42"
0 == false
0 == ""
[] == ""
{} == "[object Object]"
'/(?:)/' == new RegExp
相反,您应该使用===
运算符来检查严格的相等性。