隐居以求其志,行义以达其道
测试对象属性
测试对象属性

测试对象属性

in 自有属性、继承属性返回true
obj.hasOwnProperty(‘key’) 自有属性返回true(Object.creat(null)创建的没有原型的对象无法调用,也不能排除此方法被改写,不推荐使用)
Object.prototype.hasOwnProperty(obj, ‘key’) 自有属性返回true
Object.hasOwn(obj, ‘key’) 静态方法代替hasOwnProperty(推荐)
Object.prototype.propertyIsEnumerable.call(obj, ‘key’) 自有属性且 可枚举返回true
Object.getOwnPropertyDescriptor(obj, ‘key’)?.enumerable 静态方法 自有属性且 可枚举返回true

Object.keys()  返回 自有,可枚举 属性组成的数组(Symbol属性不返回)
Object.getOwnPropertyNames()  返回 自有属性(包括不可枚举)组成的数组(Symbol属性不返回)
Object.getOwnPropertySymbols()   返回 自有Symbol属性(包括不可枚举) 组成的数组
Reflect.ownKeys()  返回 自有所有属性(字符串,Symbol,可枚举,不可枚举)组成的数组
for/in 循环 自有和继承的可枚举属性