判断属性存在的方式有很多种,首先要确定自己的判断标准是什么?下面简单说明几种方式的使用场景
判断对象是否包含‘a’属性 例子:
const obj = {}
1. if ( obj.a !== undefined )
这种判断标准最不准确,实际上是判断a的属性值 是否为undefined
Object.keys(obj) .includes('a')
这种判断标准是,obj有没有自有可枚举属性(属性是自己拥有,而不是原型继承的,可枚举属性)
obj.hasOwnProperty('a')
这种判断标准是,obj有没有自有属性‘a'
if ( 'a' in obj )
这种判断标准是,不管‘a'是不是自有属性(可能是原型继承上的),只要‘a’在obj能够访问到,就判定存在。