es6-对象扩展

1.简洁表示法

{  let o=1;

let k=2;

let es5={  o:o,  k:k  };

let es6={  o,  k  };

console.log(es5,es6);

}

es6比es5表示要简洁一些

方法的简洁表达

let es5_method={

hello:function()

{  console.log('hello');  }

};

let es6_method={

hello()

{  console.log('world');  }

}

console.log(es5_method.hello(),es6_method.hello());

2.属性表达式

{  let a='b';

let es5_obj={  a:'c',  b:'c'  };

let es6_obj={  [a]:'c'  }
console.log(es5_obj,es6_obj);

}

在es5中,a的值没有改变,在es6中,a的值在之前赋值时就已经改变了,这种方便对象名因为另一个值做变换,可以实现变量的依赖

3.新怎API

判断字符串是否相等

{  console.log('字符串',Object.is('abc','abc'),'abc'==='abc');

console.log('数组',Object.is([],[]),[]===[]);  }

这里object.is()其实是等价于===的,而第二个数组虽然值都是空的,但是数组返回的是数组的地址,两个地址是不一样的,所以是false

拷贝

console.log('拷贝',Object.assign({a:'a'},{b:'b'}));

这个API将前后的对象合并成了一个对象,而且是一个前拷贝,这个API不能做后拷贝,如果这个对象还有继承,这个API是不会拷贝继承的,也不可拷贝对象中不可枚举的属性

entries

let test={k:123,o:456};

for(let [key,value] of Object.entries(test))

{  console.log("qq",[key,value]);  }

这个可以取得对象里面的值

扩展运算符

let {A,B,...C}={a:'test',b:'kill',c:'ddd',d:'sss'}

其中C={

c:'ddd',

d:'sss'

}

原文地址:https://www.cnblogs.com/ellen-mylife/p/11083013.html