1. 程式人生 > >ES6的陣列結構賦值

ES6的陣列結構賦值

基本用法

* 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 // 2
let [a,[b],c] = [1,[2,3],4];
a // 1
b // 2
c // 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並沒有申明。