3.1 数组的解构赋值

来源:互联网 发布:股票自动止损 知乎 编辑:程序博客网 时间:2024/05/17 08:35

3.1.1 基本用法

1:ES6允许按照一定模式从数组跟对象中提取值,然后对变量进行赋值。这被称为解构
2:从数组中提取值,按照对应位置对应赋值

  let [a,b,c]=[1,2,3]  console.log(a)   //1  console.log(b)   //2  console.log(c)   //3

3:本质,这种写法属于‘模式匹配’,只要等号2边的模式相同,左边的变量就会被赋予对应的值;如果解构不成功,值就是undefined
4:不完全解构:=左边的模式值匹配右边的一部分数组,这种情况下解构依然成功

  let [a,b]=[1,2,3]  console.log(a)   //1  console.log(b)   //2 let [a,[b],c]=[1,[2,3],4]  console.log(a)   //1  console.log(b)   //2  console.log(c)   //4

5:如果=右边不是数组,那么将会报错;

3.1.2 默认值

匹配成功则为新值,匹配不成功则为默认值

let [a=true]=[]console.log(a);  //truelet [b=1]=[null]   //数组成员不===undefined的时候,默认值不会生效console.log(b);  //null    let [x=1,y=x]=[]  //x=1,y=1    let [x=1,y=x]=[2]  //x=2,y=2    let [x=1,y=x]=[1,2]  //x=1,y=2    let [x=y,y=1]=[]  //referenceError