我应该使用!==
还是==!
?两者都有效,但标准是什么?
我为两种情况输入“else”:
var x;
if (x !== undefined)
{
alert("if..");
}
else
{
alert('else..') // <--- here
}
var y;
if (y ==! undefined)
{
alert("if..");
}
else
{
alert('else..') // <--- here
}
答案 0 :(得分:4)
==!
不是Javascript中的比较运算符。当您编写foo ==! bar
时,您实际上正在编写foo == !bar
,使用一元!
否定运算符和二进制==
比较运算符。这可能不符合您的要求:
> 'b' ==! 'a'
false
> 'b' !== 'a'
true
这种情况恰好在您描述的特定情况下“有效”,因为!undefined
评估为true
,y == true
未定义y
为false
,因此把你带到else
分支。
答案 1 :(得分:1)
if (x !== undefined)
检查x是否未定义,而
if (y ==! undefined)
否定undefiend
(返回!undefined == true
)然后检查它是否与y