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

2022-08-29 21:57:14

哪个是正确的做法?

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

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

if (myObj['key'])

答案 1

尝试使用 JavaScript in 运算符

if ('key' in myObj)

反之亦然。

if (!('key' in myObj))

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

用于检查对象自己的键,并且仅当直接在 上可用时才会返回:myObj.hasOwnProperty('key')truekeymyObj

myObj.hasOwnProperty('key')

除非您有使用运算符的特定原因,否则 using 将生成大多数代码正在寻找的结果。inmyObj.hasOwnProperty('key')


答案 2

你应该使用 hasOwnProperty。例如:

myObj.hasOwnProperty('myKey');

注意:如果您使用的是 ESLint,则上述操作可能会因违反无原型内置规则而出现错误,在这种情况下,解决方法如下:

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