检查 JavaScript 对象中是否存在某个键
javascriptweb developmentfront end technologyobject oriented programming
我们需要说明检查对象中是否存在某个特定键的正确方法。在介绍正确方法之前,让我们先检查一种不正确的方法,看看它实际上有多么不正确。
方法 1:检查未定义值(不正确的方法)
由于 JavaScript 的易失性,我们可能需要检查对象中是否存在键,例如 −
const obj = {
name: 'Rahul'
};
if(!obj['fName']){}
或
if(obj['fName'] === undefined){}
这两种方法都是不正确的。为什么?
因为在这种情况下恰好没有 'fName' 键,但假设存在一个故意设置为 false 或 undefined 的 'fName'。
我们的函数应该返回该键不存在,但实际上它们确实存在。所以在这种情况下,这种方法会失败。
方法 2 − 使用 in 运算符(正确方法)
ES6 中刚刚引入的 in 关键字检查可迭代对象中的条目。因此,为了检查键是否存在,我们可以执行类似 −
('fName' in obj);
方法 3 − 使用 hasOwnProperty() 方法(正确方法)
使用 Object.prototype.hasOwnProperty() 方法,我们可以确定对象是否包含键。
其语法为 −
obj.hasOwnProperty('fName');
方法 2 和方法 3 之间的区别在于,方法 3 仅检查所调用的 Object 实例的属性,而 ‘in’检查对象实例属性以及继承的属性(如果有)。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

