如何确定页面中是否定义了JavaScript变量?

时间:2008-09-26 10:41:05

标签: javascript

如果在页面中定义了变量,我如何检查JavaScript?假设我想检查页面中是否定义了名为“x”的变量,如果我if(x != null),则会给出错误。

7 个答案:

答案 0 :(得分:156)

我使用if (typeof(x) != "undefined")

开始工作

答案 1 :(得分:48)

为避免意外分配,我养成了颠倒条件表达式顺序的习惯:

if ('undefined' !== typeof x) {

答案 2 :(得分:22)

与其他运算符不同,typeof运算符在与未声明的符号一起使用时不会抛出ReferenceError异常,因此可以安全使用...

if (typeof a != "undefined") {
    a();
}

答案 3 :(得分:1)

你可以这样做:

if(window.x!== undefined){   //你在这里编码 }

答案 4 :(得分:1)

正如其他人所提到的,typeof运算符甚至可以评估未声明的标识符,而不会抛出错误。

alert (typeof sdgfsdgsd);

将显示“undefined”,类似

alert (sdgfsdgsd);

将抛出一个ReferenceError。

答案 5 :(得分:0)

假设您的功能或变量是在典型的“全局”(参见:窗口的)范围内定义的,我更喜欢:

if (window.a != null) {
   a();
}

甚至以下,如果您正在检查函数是否存在:

if (window.a) a();

答案 6 :(得分:-3)

尝试使用undefined

if (x !== undefined)

这是检查特定浏览器功能的方法。