数组解构赋值
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