说boundEvents
是可能存在或可能不存在的数组。如果不存在,则下面的代码将返回'undefined':Javascript:检查可能不存在的数组中的键
console.log(typeof boundEvents);
很好。这正是我想要的。现在说我想检查这个理论数组是否存在密钥,它可能存在也可能不存在。
console.log(typeof boundEvents['click']);
嗯哦:
Uncaught TypeError: Cannot read property 'click' of undefined
很公平,JavaScript的。因此,让我们检查,看看是否数组存在,在我们检查的重点:
if(typeof boundEvents != 'undefined'){
console.log(typeof boundEvents['click']);
}
重新工作,但我不知道是否有消除if
声明,只是检查的boundEvents['click']
存在方式直接,一步到位?
谢谢!
编辑:完整的答案,从下面结合:
var boundEvents = boundEvents || {};
console.log(boundEvents.hasOwnProperty('click'));
nope,你需要if语句。 – bhspencer
不,你必须检查每一层。 – tymeJV
你可以做'console.log(typeof boundEvents!='undefined'&& typeof boundEvents ['click'])''。这是否更具可读性留给读者作为练习。 –