ES6 数组解构赋值 说的通俗一点就是 映射 将映射的值给拿出来用

1.数组解构
let [a, b, c,d] = ["aa", "bb", 77,88]; 
alert(a) //弹出aa      可以用babel  解析看ES5的转换结果
嵌套数组解构 
let [a,b,[c,d],e] =["aa",'bb',[33,44],55]; 
alert(c) //弹出33 
空缺变量 
let [a,b,,e] =["aa",'bb',[33,44],55]; 
//缺省可以以空格代替但是不能去掉占位的,
多余变量 
let [a,b,,e,f] =["aa",'bb',[33,44],55]; 
alert(f); //弹出undefined 与变量f没有对应值,所以映射不过去
默认值 
let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55]; 
alert(f) //弹出给的默认值  

但是 下面这种有值的情况给默认值是会被忽略的
let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55,66]; 
alert(f) //弹出给的66

结合扩展运算使用
[a, b, ...c] = [1, 2, 3, 4, 5, 7];
console.log(a); // 1
console.log(b); // 2
console.log(c); //[ 3, 4, 5, 7 ]
 2.对象解构 
// let obj={uid:121,uname:'张三'};  //对象写法一
let obj=new Object(); //对象写法二
  obj.uid=111; 
  obj.uname='张三'; 
  let {uid:id,uname:name}=obj; //顺序改变无影响 
alert(name);  //弹出张三  这个也是创建一个变量,然后去映射出它的值
小括号
let obj={uid:121,uname:'张三'};  
    let uid,uname; 
    ({uid,uname} = obj); //必须有小括号,否则{}就会被解读为语句块 
alert(uname);; 
3.字符串解构
let[a, b, c, d] ="倚天屠龙"; 

console.log(a); //弹出 倚
4.函数参数解构 
let obj=new Object(); 
    obj.uid=111; 
    obj.uname='张三'; 
function analysis({uid,uname}){ 
    alert(uid); 
    alert(uname); 
} 
analysis(obj); //把刚开始定义obj对象传进去,然后里面会自动分配好你对象的值,你只需在传参数(形参)的时候注意对象的个数(实参)即可

 运用的例子

函数传参  test({name,type})

只要你传过去的实参名字和形参一样 是可以不按照顺序的(前提用解构的方式传形参)