0

这让我很生气:如果我不这样做:

var a;

然后这样做:

if(a){
    // doing stuff
}

它吐出这个错误:

ReferenceError: a is not defined

那么如何检查变量是否已定义!

请不要告诉我使用typeof.

编辑:

a有时由库定义。我想检查库是否定义了它,如果没有定义它,我仍然可以在我的代码中使用它!

4

4 回答 4

3

检查未定义但不抛出 ReferneceError ,如下所示:

if (typeof window.a == "undefined") {
    // do something
}
于 2012-07-25T16:24:29.537 回答
2

如果要确保a已声明,并且不会导致任何引用错误问题。您可以添加重新声明声明。

var a = a;

在这种情况下,如果定义了 a,则没有任何变化,否则它是未定义的。

注意:这仅a在全局范围内有效,请查看评论以获取更多详细信息。

于 2012-07-25T16:29:25.210 回答
0

这有什么问题

if(typeof a!='undefined')
{
    // a is defined
}
else
{
    // a is not defined
}

更新:或者你可以使用

if(a==void 0) // undefined
于 2012-07-25T16:32:50.413 回答
0

或者,你可以试试这个:

if( !window.hasOwnProperty('a') ){    
    window.a = 'some definition here';
}
于 2012-07-25T16:51:39.047 回答