Javascript - 如果变量未定义的条件

标签 javascript referenceerror

我想在使用变量之前检查它是否已定义,所以我写了这样的内容

if(!variable){
    return null;
}

但它抛出一个错误

ReferenceError: variable is not defined

如果我这样做

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

它按预期工作。

这些方法之间有什么区别以及为什么它在第一个示例中没有返回 null 而是因错误而终止?

最佳答案

!variable 被求值时,它会尝试获取变量的值,如 per spec会抛出一个ReferenceError。

但是打电话typeof最初不会尝试获取变量的值,而是检查传递的表达式是否是引用,如果是,那么它将检查它是否可解析(如果没有返回undefined)。

关于Javascript - 如果变量未定义的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31673936/

相关文章:

javascript - Uncaught ReferenceError : "method" is not defined

javascript - 在 Javascript/HTML 中获取 ReferenceError 说“函数未定义”

php - 将 href 值增加一(Javascript)

javascript - 我可以在不编写循环的情况下声明嵌套在对象集合中的值数组吗?

javascript - 将 jQuery .map() 方法调用转换为 TypeScript

javascript - Masonry javascript 插件出现“未定义”错误

javascript - 未捕获的 ReferenceError : (function) not defined at HTMLButtonElement. onclick

javascript - 输入 0 未定义堆栈 :reference error

javascript - 从附加脚本插入数据

javascript - dojox 图表突出显示效果不起作用