检查 JavaScript 对象中是否存在键


我们需要说明检查对象中是否存在特定键的正确方法。在继续介绍正确方法之前,让我们先检查一种错误的方法,并了解它为什么不正确。

方法 1:检查 undefined 值(错误方法)

由于 JavaScript 的易变性,我们可能希望像这样检查对象中是否存在键:

const obj = {
name: 'Rahul'
};
if(!obj['fName']){}

或者

if(obj['fName'] === undefined){}

这两种方法都是错误的。为什么?

因为在这种情况下,不存在“fName”键,但假设存在一个“fName”键,并且它被故意设置为 false 或 undefined。

我们的函数应该返回该键不存在,但实际上它存在。因此,在这种情况下,此方法失败。

方法 2 - 使用 in 运算符(正确方法)

在 ES6 中引入的 in 关键字检查可迭代对象中的条目。因此,要检查键是否存在,我们可以执行以下操作:

('fName' in obj);

Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.

方法 3 - 使用 hasOwnProperty() 方法(正确方法)

使用 Object.prototype.hasOwnProperty() 方法,我们可以确定对象是否包含某个键。

其语法为:

obj.hasOwnProperty('fName');

方法 2 和方法 3 之间的区别在于,方法 3 仅检查其调用的对象实例的属性,而“in”检查对象实例属性以及继承的属性(如果有)。


更新于: 2020-11-20

363 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告