ES6的数组结构赋值

来源:互联网 发布:世界地缘政治格局知乎 编辑:程序博客网 时间:2024/04/27 22:15

基本用法

* ES允许按照一定模式,从事狐族和对象中提取值,对变量进行赋值。这被称之为结构。*
通常,我们赋值一般都会采用以下的这种方式

     var a = 3;    var b = 'string';    // es6写法    var [a,b] = [3,'string'];

下面是以嵌套数组赋值的例子

let [a,b,c] = ["name","sex","age"];    a // name    b // sex     c // age

如果解构不成功,变量会变成undifined

    let [a] = [];    let [b,a] = [1];

以上的例子中都属于解构不成功的情况,a的值为undifined

另一种情况是不完全解构,例子如下

// 第一种情况let [a,b] = [1,2,3];    a // 1    b // 2let [a,[b],c] = [1,[2,3],4];a // 1b // 2c // 4

如果等号右边不是数组,亦或者右边不是可遍历的解构。则会报错。

    let [a] = 2;    let [a] = 'a';    let [a] = false;    let [a] = {}    let [a] = null;

解构赋值不仅适用于let,同时也适用于const和var

默认值

解构赋值允许给出默认值

let [a = 2] = [];a // 2

默认值可以引用解构赋值的其他变量,但该变量必须已经声明。

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] =[] // 报错 因为x=y时,y并没有申明。
原创粉丝点击