var foo;
console.log(typeof foo); //"undefined"
if(typeof foo === 'undefined')
console.log(1);
if(!foo)
console.log(2);
在上面的示例中,控制台将记录“1”和“2”,因为undefined
评估为false
。 null
,NaN
,""
(空字符串)等也会发生同样的事情。
更常见的是使用typeof
运算符并比较字符串值,而不是使用评估的布尔值?除了可读性之外还有什么区别吗?有什么优点和缺点?
答案 0 :(得分:4)
没有银弹,完全取决于你的目标。
如果你需要知道变量是“假的” - 你使用if (!var)
,如果你需要确切地知道它是null
,0
,空字符串还是其他什么 - 你使用if (var === null)