检查 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”检查对象实例属性以及继承的属性(如果有)。
广告