Javascript - 如果未定义变量,则调整条件

时间:2015-07-28 10:39:30

标签: javascript referenceerror

我想在使用之前检查一个变量是否已定义,所以我写了类似这样的东西

if(!variable){
    return null;
}

但它会抛出错误

  

ReferenceError:未定义变量

如果我这样做

if(typeof variable === 'undefined'){
    return null;
}

它按预期工作。

这些方法之间有什么区别,为什么它在第一个例子中没有返回null,而是因为错误而死了?

1 个答案:

答案 0 :(得分:2)

当评估!variable时,它会尝试获取变量的值,而per spec将抛出一个ReferenceError。

但调用typeof最初不会尝试获取变量的值,而是会检查传递的表达式是否为引用,如果是,那么它将检查它是否可解析,如果也不{{1}返回。