关于es6中对象的扩展
1.Object.is() es5比较两个值是否相等,只有两个运算符,相等(==) 和 严格相等(===),他们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0 等于 -0。es6提出了Object.is()方法,它用来比较两个值是否相等,与严格运算符(===)的行为基本一致 Object.is('foo', 'foo') //false Object.is({} , {}) //false 不同之处只有两个, Object.is(+0, -0) // true Object.is(NaN , NaN) // true 2.Object.assign() Object.assign 方法用于将源对象的所有可枚举属性复制到目标对象 var target = { a: 1} var source = { b:2 } var source2 = { c: 3} Object.assign(target , source, source2) target // { a: 1, b: 2, c:3 } // 第一个参数是目标对象,后面的是源对象 注意:如果目标对象和源对象有重名属性, 或多个源对象有同名属性,则后面的属性会覆盖前面的属性 如果只有一个参数,Object.assign会直接返回该参数 var obj = { a: 1} Object.assign