1

我需要能够检查一个变量是否存在(如果它没有将它分配给 {})而不在 javascript 中引发错误。当我尝试这段代码时

if (a) {}    

它抛出 uncaughtReferenceError

我真正想做的是这样的事情而不会引发错误:

a = a || {}    

或者它看起来像这样

if (a) { a = {} }    
4

3 回答 3

2
if (typeof a === 'undefined'){
  // variable is not available and you can write a = {}
}

a = a || {}很快

于 2013-04-20T23:30:38.477 回答
2

如果a是全局的,可以使用全局对象来避免错误。在浏览器中,该对象是window

window.a = window.a || {};

或者,正如 Ozerich 建议的那样,您可以使用typeof不会引发参考错误的 :

if (typeof a === 'undefined') {
    a = {};
}
于 2013-04-20T23:34:45.470 回答
0
a = a || {}

根本行不通,因为a没有定义。但是您可以使用typeof它来检查它是否存在。

a = (typeof(a) === 'undefined' ? {} : a);
于 2013-04-20T23:36:37.337 回答