如何检索对象中是否包含某个属性

常用的方法一共有三种,可以根据需求自行选择~

 

1. hasOwnproperty()

这个方法是最常用的,所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。

和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log(boy.hasOwnProperty('name'));  // true
let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log(boy.hasOwnProperty('a'));  // false

 

 

2. in操作符

let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log('name' in boy);  // true
let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log('a' in boy);  // false

 

 

3. 直接使用obj['prop']

与上面两种不同,当存在属性名时,返回该名对应的属性值;当不存在属性名时,返回undefined

let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log(boy['name']);  // Raven
let boy = {
  name: 'Raven',
  age: 24,
  role: 'Childhood sweetheart'
}
console.log(boy['a']);  // undefined

 

posted @ 2022-11-23 17:41  沐夏52Hz  阅读(85)  评论(0编辑  收藏  举报