ES6对对象的进行了扩展。
1:属性的简洁表示法
方法也可以简写
2:Object.is()
用途:比较两个值是否相等。
ES5 中 相等运算符(==)和严格相等运算符, == 和 ===来判断 都有一定的局限性。 == 会自自动转换为数据类型,而===对于NaN不等于自身,+0和-0 也不能正常比较。看下图所示
使用ES5 的Object.defineProperty 可实现Object.is 功能。
3:Object.assign()
用途:用于对象合并,将对象中的可枚举属性,复制到目标对象。
参数:第一个是目标对象,后面参数是源对象。
如果合并对象中存在同名属性,则后面的属性会覆盖前面的对象。
只有一个参数,Object.assign会直接返回该参数。
参数不是对象,则会先转成对象,然后返回对象类型,但是null和 undifed 无法转换为对象,会报错。
Object.assign方法实行的是浅拷贝,而不是深拷贝
如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。