如何检查对象中是否存在某个属性

6/27/2020 Javascript

# 使用 in

第一种使用 in 操作符号

const obj = {
  prop: 'prop',
  prop2: 'prop2'
}

console.log('prop' in o) // true
console.log('prop1' in o) // false
1
2
3
4
5
6
7

# 使用 hasOwnProperty

console.log(obj.hasOwnProperty('prop2')) // true
console.log(obj.hasOwnProperty('prop1')) // false
1
2

# 使用括号符号 obj["prop"]

console.log(obj['prop']) // "prop"
console.log(obj['prop1']) // undefined
1
2

# 拓展 in、括号运算符 和 hasOwnProperty 区别

上面都是简单的例子,我们加上原型链的知识再来看下

Object.prototype.prop1 = 'prop1'
const obj = {
  prop: 'prop',
  prop2: 'prop2'
}

console.log('prop1' in obj) // true
console.log(obj['prop1']) // 'prop1'
console.log(obj.hasOwnProperty('prop1')) // false
1
2
3
4
5
6
7
8
9
  • in 或者 括号运算符 都会向上查找对应的变量
  • hasOwnProperty() 只会检查自身的内容
Last Updated: 5/9/2021, 10:45:03 PM