我想知道这个奇怪的铬行为来自它的最后一次更新。当我想检查是否定义了变量时,它会抛出一个未被捕获的错误,如下所示:
if(x) { alert('x is defined.'); }
这一行抛出:
ReferenceError: x is not defined
我知道如何处理这个问题但是根据我之前的经验,这应该返回undefined而不是在我的应用程序中抛出异常。 为什么会这样?我认为它应该检查x是否是窗口对象的属性。提前谢谢。
答案 0 :(得分:3)
未声明的变量与声明的变量但具有未定义的值之间存在差异。仅当您尝试访问尚未声明的变量时才会发出警报。你应该总是声明你的变量,即使你没有初始化它们,例如
var x;
if (x) {
alert('x is defined');
}