【发布时间】:2010-09-13 09:53:40
【问题描述】:
如果在页面中定义了变量,我如何检查 JavaScript?假设我想检查一个名为“x”的变量是否在页面中定义,如果我这样做if(x != null),它会给我一个错误。
【问题讨论】:
标签: javascript
如果在页面中定义了变量,我如何检查 JavaScript?假设我想检查一个名为“x”的变量是否在页面中定义,如果我这样做if(x != null),它会给我一个错误。
【问题讨论】:
标签: javascript
我使用 if (typeof(x) != "undefined") 让它工作
【讨论】:
"undefined" 更正确——如果使用!==,那么引号是必要的,因为typeof 会产生一个字符串。
undefined 可以被覆盖!使用字符串。
为了避免意外赋值,我养成了颠倒条件表达式顺序的习惯:
if ('undefined' !== typeof x) {
【讨论】:
!==,而不是===。 :)
typeof 运算符与其他运算符不同,在与未声明的符号一起使用时不会引发 ReferenceError 异常,因此使用起来很安全...
if (typeof a != "undefined") {
a();
}
【讨论】:
你可以这样做:
如果 (window.x !== 未定义) { // 你在这里编码 }
【讨论】:
正如其他人所提到的,typeof 运算符甚至可以评估未声明的标识符而不会引发错误。
alert (typeof sdgfsdgsd);
将显示“未定义”,其中类似
alert (sdgfsdgsd);
会抛出一个 ReferenceError。
【讨论】:
假设您的函数或变量是在典型的“全局”(参见:window's)范围内定义的,我更喜欢:
if (window.a != null) {
a();
}
如果您正在检查一个函数的存在,甚至是以下内容:
if (window.a) a();
【讨论】:
【讨论】: