ES6数组的解构赋值( 中)

数组的解构赋值的用法有以下几情况要注意:

1、结构赋值可以嵌套的

数组的解构赋值的用法有以下几情况要注意:

1、结构赋值可以嵌套的

  

    var [ a,b,[ c1,c2 ] ] = [ 1,2,[ 3.1,3.2 ] ];
    console.log(c1);//结果:c1的值为3.1
    console.log(c2);//结果:c2的值为3.2

    如我们的预料,数组中即使再嵌套另一个数组,结构赋值也能为我们的变量准确的赋值,c1和c2的值分别为3.1 , 3.2,也就是赋值成功。

   2、不完全解构

  var [a,b,c] = [1,2];
    console.log(a);//结果:a的值为1
    console.log(b);//结果:b的值为2

        当左边的模式(你可以理解为格式)与右边不完全一样的时候,那么赋值过程中,只会给模式匹配成功的部分的变量赋值,例如:变量c没有在右边找到匹配的模式,所以无法进行赋值,但这并不影响变量a和变量b的赋值,因为它们在右边找到与之匹配的模式,这种叫做不完全解构。

3.    赋值不成功,变量的值为undefined

  var [a,b,c] = [1,2];
    console.log(a);//结果:a的值为1
    console.log(b);//结果:b的值为2
    console.log(c);//结果:c的值为undefined

        还是接着上面的不完全解构例子讲解,变量a和变量b为不完全解构,那么变量c解构不成功会怎么样呢?记住,解构不成功,变量的值就等于undefined。相当于只声明了变量c,但是没赋值。

4.    允许设定默认值

 var [a,b,c=3] = [1,2];
    console.log(a);//结果:a的值为1
    console.log(b);//结果:b的值为2
    console.log(c);//结果:c的值为3

 

posted on 2017-08-02 23:18  queena_w  阅读(182)  评论(0编辑  收藏  举报

导航