如何检查对象在 JavaScript 中是否有键?
2022-08-29 21:57:14
哪个是正确的做法?
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')
除非您有使用运算符的特定原因,否则 using 将生成大多数代码正在寻找的结果。in
myObj.hasOwnProperty('key')
你应该使用 hasOwnProperty
。例如:
myObj.hasOwnProperty('myKey');
注意:如果您使用的是 ESLint,则上述操作可能会因违反无原型内置规则而出现错误,在这种情况下,解决方法如下:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');