我怎样才能确定一个JavaScriptvariables是否在页面中定义?

如何在页面中定义variables时如何检查JavaScript? 假设我想检查一个名为“x”的variables是否在页面中定义,如果我这样做if(x != null) ,它会给我一个错误。

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

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

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

typeof运算符与其他运算符不同,在与未声明的符号一起使用时不会引发ReferenceErrorexception,因此可以安全地使用…

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

你可以这样做:

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

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

 alert (typeof sdgfsdgsd); 

将显示“未定义”,类似的东西

 alert (sdgfsdgsd); 

会抛出一个ReferenceError。

假设你的函数或variables是在典型的“全局”( 见: 窗口范围中定义的,我更喜欢:

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

或甚至以下,如果你正在检查一个函数的存在:

 if (window.a) a(); 

尝试使用undefined

 if (x !== undefined) 

这是如何检查特定的浏览器function。