哪一件事是正确的?
if (myObj['key'] == undefined)
or
if (myObj['key'] == null)
or
if (myObj['key'])
哪一件事是正确的?
if (myObj['key'] == undefined)
or
if (myObj['key'] == null)
or
if (myObj['key'])
当前回答
尝试JavaScript in运算符。
if ('key' in myObj)
反之亦然。
if (!('key' in myObj))
小心!in运算符匹配所有对象关键点,包括对象原型链中的关键点。
使用myObj.hasOwnProperty('key')检查对象自己的键,并且仅当键直接在myObj上可用时才返回true:
myObj.hasOwnProperty('key')
除非您有使用in运算符的特定原因,否则使用myObj.hasOwnProperty('key')会产生大多数代码所希望的结果。
其他回答
您应该使用hasOwnProperty。例如:
myObj.hasOwnProperty('myKey');
注意:如果您使用的是ESLint,上面可能会给您一个违反无原型内置规则的错误,在这种情况下,解决方法如下:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');
尝试JavaScript in运算符。
if ('key' in myObj)
反之亦然。
if (!('key' in myObj))
小心!in运算符匹配所有对象关键点,包括对象原型链中的关键点。
使用myObj.hasOwnProperty('key')检查对象自己的键,并且仅当键直接在myObj上可用时才返回true:
myObj.hasOwnProperty('key')
除非您有使用in运算符的特定原因,否则使用myObj.hasOwnProperty('key')会产生大多数代码所希望的结果。