如何检查对象在 JavaScript 中是否具有键?

正确的做法是?

if (myObj['key'] == undefined)

要么

if (myObj['key'] == null)

要么

if (myObj['key'])

答案

operator 中尝试JavaScript

if ('key' in myObj)

反之。

if (!('key' in myObj))

小心! in运算符匹配所有对象键,包括对象原型链中的那些键。

使用myObj.hasOwnProperty('key')来检查对象的自己的钥匙,将只返回true ,如果key是可在myObj直接:

myObj.hasOwnProperty('key')

除非有特殊原因使用in运算符, myObj.hasOwnProperty('key')使用myObj.hasOwnProperty('key')会生成大多数代码正在寻找的结果。

您应该使用hasOwnProperty 。例如:

myObj.hasOwnProperty('myKey');

注意:如果您使用的是 ESLint,则上面的代码可能会因违反no-prototype-builtins规则而给您一个错误,在这种情况下,解决方法如下:

Object.prototype.hasOwnProperty.call(myObj, 'myKey');