ES6解构赋值

数组解构赋值

let [aa,bb='eternity']=['张'];
console.log(aa+bb);//张eternity
let [cc,dd='eternity']=['张',undefined];
console.log(cc+dd);//张eternity
let [e,f='eternity']=['张',null];
console.log(e+f);//张null

对象的解构赋值

let {foo,bar}={foo:'eternity',bar:'zhang'};
console.log(bar+foo)//eternityzhang

对象解构坑

先定义再使用解构赋值,必须使用()包括,否则报错

let foo1;
({foo1}={foo1:'zhang'});
console.log(foo1)//zhang

对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。

// 例一
let { log, sin, cos } = Math;

// 例二
const { log } = console;
log('hello') // hello

上面代码的例一将Math对象的对数、正弦、余弦三个方法,赋值到对应的变量上,使用起来就会方便很多。例二将console.log赋值到log变量。
例一中,相当于将Math.log赋值给了log,此时前面的变量log必须与Math.log中的方法名一致
例二中,相当于将console.log方法复制给了变量log,此时log必须与console中的log方法名一致

字符串解构

const [x,y,z]='zhang';
console.log(x+y+z);//zha
const [x,y,z]='zh';
console.log(x+y+z);//zhundefined
posted @ 2020-02-07 11:37  未月廿三  阅读(246)  评论(0编辑  收藏  举报