3.1 数组的解构赋值

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);  //true
let [b=1]=[null]   //数组成员不===undefined的时候,默认值不会生效
console.log(b);  //null

    //x,y初值为1.匹配失败,则为初值
    let [x=1,y=x]=[]  //x=1,y=1
    //x初值为1.匹配成功,初值被覆盖变为2,y初值为1.匹配失败,则为初值2
    let [x=1,y=x]=[2]  //x=2,y=2
    //x,y初值为1.匹配成功,则为新值1,2
    let [x=1,y=x]=[1,2]  //x=1,y=2
    let [x=y,y=1]=[]  //referenceError
 let [a,...b]=[1,2,3,4,5]
    console.log(a)  //1
    console.log(b)  //2, 3, 4, 5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值