这让我很生气:如果我不这样做:
var a;
然后这样做:
if(a){
// doing stuff
}
它吐出这个错误:
ReferenceError: a is not defined
那么如何检查变量是否已定义!
请不要告诉我使用typeof
.
编辑:
a
有时由库定义。我想检查库是否定义了它,如果没有定义它,我仍然可以在我的代码中使用它!
这让我很生气:如果我不这样做:
var a;
然后这样做:
if(a){
// doing stuff
}
它吐出这个错误:
ReferenceError: a is not defined
那么如何检查变量是否已定义!
请不要告诉我使用typeof
.
编辑:
a
有时由库定义。我想检查库是否定义了它,如果没有定义它,我仍然可以在我的代码中使用它!
检查未定义但不抛出 ReferneceError ,如下所示:
if (typeof window.a == "undefined") {
// do something
}
如果要确保a
已声明,并且不会导致任何引用错误问题。您可以添加重新声明声明。
var a = a;
在这种情况下,如果定义了 a,则没有任何变化,否则它是未定义的。
注意:这仅a
在全局范围内有效,请查看评论以获取更多详细信息。
这有什么问题
if(typeof a!='undefined')
{
// a is defined
}
else
{
// a is not defined
}
更新:或者你可以使用
if(a==void 0) // undefined
或者,你可以试试这个:
if( !window.hasOwnProperty('a') ){
window.a = 'some definition here';
}