1.扩展运算符
对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。
①等于Object.assign()
let z = { a: 3, b: 4 }
let n = { ...z } // { a: 3, b: 4 }
②合并多个对象
let ab = { ...a, ...b }
③解构赋值
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x // 1
y // 2
z // { a: 3, b: 4 }
2.Object.assign()
Object.assign只拷贝源对象的自身属性(不拷贝继承属性)和可枚举的属性(enumerable: true)。
3.Object.keys()
返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。
4.Object.values()
返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。
注意:属性名为数值的属性,是按照数值大小,从小到大遍历的
5.Object.is()判断两个对象是否相等
解决ES5:自动转换数据类型导致NaN不等于自身,以及+0等于-0的问题。
6.其他
entries()
fromEntries()