Say boundEvents
是一个可能存在或可能不存在的数组。如果它不存在,则以下代码将返回'undefined':
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'));
答案 0 :(得分:2)
你可以这样做:
boundEvents = boundEvents || {};
console.log(boundEvents['click']);
或单行:
console.log((boundEvents || {})['click']);
答案 1 :(得分:1)
如果你想要一个明确的true / false
,那么:
(boundEvents || {}).hasOwnProperty('click')
答案 2 :(得分:0)
您可以检查以您想要的变量结尾的每个图层。如果一切都是假的,这将默认为undefined。
( (typeof boundEvents !== "undefined") && boundEvents['click']) || undefined