-
Reflect.ownKeys(target)-
target参数:传入一个对象(非对象会报错) -
返回target所有的属性key,这些属性形成一个数组
-
注意:可以返回不可枚举类型,但是不返回target继承的属性
Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)) Reflect.ownKeys(target) 两者在遍历对象属性具有相同的作用
-
-
Object.keys(target)target参数:传入对象(非对象不会报错)- 返回target可枚举的属性key,这些属性形成一个数组
- 注意:返回可枚举类型的属性,不返回的属性有:不可枚举的属性、target继承的属性
-
对象的每一个属性都有一个描述对象,用来描述和控制该属性的行为,获取到的描述对象中的enumerable属性,称为可枚举性,ture为可枚举,false即不可枚举。当属性不可枚举时,就表示某些操作会忽略当前属性。
-
Object.getOwnPropertyDescriptor(object,'该对象具有的属性')- 获取对象的属性的描述对象
-
Object.defineProperty()- 设置对象的属性的描述对象
-
以下操作也会忽视不可枚举的属性
for...in循环:只遍历对象自身和继承的可枚举属性Object.keys():返回对象自身的所有可枚举属性的键名JSON.stringify():只串行化对象自身的可枚举属性Object.assign(): 只拷贝对象自身的可枚举的属性
-
-
Object.assign(object1,object2,object3)var test = Object.assign(object1,object2,object3);- 将对象
object1、object2、object3的属性添加给变量test - 多个对象合并
- 将对象
-
Object.is()-
该方法与
===类似 -
区别
+0 === -0 //true NaN === NaN // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true
-
-
===- 严格相等运算符
- 比较时不进行隐式类型转换
-
==- 相等运算符
- 比较时会自动进行数据类型转换