Art*_*Art 5 javascript comparison
考虑遵循JavaScript代码(在Firefox中测试):
function f(a) {
if (a == undefined) {
alert('undefined');
}
if (a == null) {
alert('null');
}
}
f();
Run Code Online (Sandbox Code Playgroud)
显示两个警报,表明两个语句都是正确的.
你能提供一个合理的解释吗?
SLa*_*aks 10
==是一个"软"平等运算符.
它使用类型强制来比较两个等价的对象.
以下所有情况均属实:
42 == "42"
0 == false
0 == ""
[] == ""
{} == "[object Object]"
'/(?:)/' == new RegExp
Run Code Online (Sandbox Code Playgroud)
相反,您应该使用 ===运算符,它检查严格的相等性.