ES6里对象新增的方法

对象的简洁语法

ES6里允许当对象属性名和值都一样时可简写成一个,也允许将函数简写,注意此时不要用箭头函数,看下例:

var person = {
name:‘张三’,
birth: birth, //可以简写成 birth
hello: function( ){
return this.name
}

// 可简写为 hello( ){
return this.name
}
}
console.log(person.hello( ) ); //张三

Object.is

Object.is( )用来比较两个值是否严格相等。它与严格比较运算符(===)的行为基本一致,不同之处只有两点:一是+0不等于-0,二是NaN等于自身。

console.log( +0 === -0 ) // true

console.log( NaN === NaN ) // false
console.log( objectis(+0,-0) ) //false
console.log( Object.is(NaN, NaN) ) // true

Object.assign

Object.assign( )用于合并对象,返回一个新对象,语法是Object.assign( 目标对象,源对象1,源对象2…)

Object. assign方法用于将源对象( source)的所有可枚举属性,复制到目标对象( target)。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出 TypeError.错误。

var target ={a:1 }
var source1 ={ b: 2 };
var source2={ c:3 };
var target1 = Object.assign(target, source1, source2);
console.log( target1 ); // {a: 1, b: 2, C: 3}

注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。

var target2 ={ a: 1, b: 1 };
var source1={ b: 2, c:2 };
var source2= { c:3 };
var target2 = Object.assign(target, source1, source2);
console.log( target2 ); //a: 1, b: 2, c: 3

Object.keys、Object.values和Object.entries

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键名。
ES6里对象新增的方法
Object.values()返回一个数组,其元素是在对象上找到的可枚举属性值。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值。
ES6里对象新增的方法
Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值对数组。
ES6里对象新增的方法
再来看个例子:
ES6里对象新增的方法
ES6里对象新增的方法