数组的解构赋值
var [a,b,c]=[1,2,3];
console.log(a,b,c);//1 2 3
let [a,b,c]=[,23,];
console.log(a,b,c);//undefined 23 undefined
//添加默认值
let [a=111,b=2,c=9]=[,,];
console.log(a,b,c);
对象的解构赋值
let {fun,er}={fun:'hi',er:'io'};
//和顺序没有关系
console.log(fun,er);//hi io
console.log(er,fun);//io hi
//对象如果设置了别名,那么原来的名字无效,只是在输出的时候使用别名就行
let {fun:a,bar}={fun:'kl',bar:'123'};
console.log(fun,bar);//fun is not defined
console.log(bar,a);//123 kl
//对象解构赋值写法
let {foo:abc='rgafghg',bar}={bar:'fhstfhjsfg'};
console.log(abc,bar);//rgafghg fhstfhjsfg
math对象解构
let {cos,sin,random}=Math;
console.log(typeof cos);//function
console.log(typeof sin);//function
console.log(typeof random);//function
字符串解构赋值
let [a,b,c,d,e]='hjhdyj';
console.log(a,b,c,d,e);//h j h d y
//解决获取字符串的长度方法(对象类型)
let {length}='hjhdyj';
console.log(length);//6