哪个是正确的做法?
if (myObj['key'] == undefined)
或者
if (myObj['key'] == null)
或者
if (myObj['key'])
哪个是正确的做法?
if (myObj['key'] == undefined)
或者
if (myObj['key'] == null)
或者
if (myObj['key'])
if ('key' in myObj)
而相反。
if (!('key' in myObj))
当心!该in
运营商匹配所有对象键,包括那些在对象的原型链。
使用myObj.hasOwnProperty('key')
检查对象的自己的钥匙,将只返回true
,如果key
可以用myObj
直接:
myObj.hasOwnProperty('key')
除非您有使用in
运算符的特定原因,否则usingmyObj.hasOwnProperty('key')
会产生大多数代码正在寻找的结果。
你应该使用hasOwnProperty
. 例如:
myObj.hasOwnProperty('myKey');
注意:如果您使用的是 ESLint,上述内容可能会因为您违反no-prototype-builtins规则而出现错误,在这种情况下,解决方法如下:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');