检查键是否存在于JavaScript对象中

我们需要说明检查对象中是否存在特定键的正确方法。在继续使用正确的方法之前,让我们首先检查一种错误的方法,看看它实际上是如何错误的。

方法1:检查未定义的值(错误的方法)

由于JavaScript的易变性,我们可能要检查像这样的对象中是否存在key-

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

要么

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

这两种都是不正确的方法。为什么?

因为在这种情况下,碰巧没有“ fName”键,但是假设存在一个“ fName”,它被故意设置为false或undefined。

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

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

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

('fName' in obj);

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

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

它的语法是-

obj.hasOwnProperty('fName');

方式2和方式3之间的区别只是方式3仅检查被调用的对象实例的属性,而“输入”则检查对象实例的属性以及继承的属性(如果有)。