JS判断对象是否有存在某个属性

160 阅读1分钟

例子

const flower = {
    name: 'peony',
    color: 'red'
}

1.in 运算符

'name' in flower   // true
'size' in flower   // false

缺点:不能判断是不是自身属性

2.hasOwnProperty()

flower.hasOwnProperty('name')    // true
flower.hasOwnProperty('size')    // false

3.原型链上hasOwnProperty()

Object.prototype.hasOwnProperty.call(flower, 'name')   //true
Object.prototype.hasOwnProperty.call(flower, 'size')   //false

4.Object.keys() 适用可枚举属性

Object.keys(flower).includes('name')   //true
Object.keys(flower).includes('size')   //false
Object.keys(flower).indexOf('name')   //true
Object.keys(flower).indexOf('size')   //false

5.直接获取属性

flower.name !== undefined   //true