如何检查对象中是否存在某个属性
Jioho 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
2
3
4
5
6
7
# 使用 hasOwnProperty
console.log(obj.hasOwnProperty('prop2')) // true
console.log(obj.hasOwnProperty('prop1')) // false
1
2
2
# 使用括号符号 obj["prop"]
console.log(obj['prop']) // "prop"
console.log(obj['prop1']) // undefined
1
2
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
2
3
4
5
6
7
8
9
in
或者括号运算符
都会向上查找对应的变量hasOwnProperty()
只会检查自身的内容