說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'])''。這是否更具可讀性留給讀者作爲練習。 –