0
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使用运算符并比较字符串值而不是使用评估的布尔值是否更常见?除了可读性有什么不同吗?有什么优点和缺点吗?

4

1 回答 1

4

没有灵丹妙药,这完全取决于您的目标。

如果您需要知道该变量是“假的” if (!var)-null0使用if (var === null)

于 2013-01-25T09:47:26.873 回答