ES6の研究では、解体の割り当てを指摘します

1.アレイ割り当て解体

シンプルな使い方

{
    // 旧
    let a=1,b=3;

    //新
    let [a,b]=[1,3];

    console.log(a,b);// 1 3
}

限り、等号の両側に同じパターンとして、左側の変数は、対応する値が与えられます。

{
     let a,b,c;
     [a,b,c]=[1,2]
     console.log(a,b,c);// 1 2 undifined
}

{
    let [a,b,c]=[1,,3];
    a,b,c;//1 undefined 3
}

{
    let [a,b]=[1,[2,3]];
    a;//1
    b;//[2,3]
}

{
    let [a,...b]=[1,2,3];
    a;//1
    b;//[2,3]
}

{
    let [a, b, ...c] = [1];
    a;//1
    b;//undefined
    c;//[]
}

{
    let [a,[b],c]=[1,[2,3],4]
    a;//1
    b;//2
    c;//4
}

既定値に設定

let [a='hello']=[];
a;//hello

let [b='world']=['yes'];
b;//yes

// ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。
let [c=13]=[undefined];
c;//13

let [d=12]=[null];
d;//null

  • 二つの変数の値の交換
    let [a, b]=[2,3];
    [a,b]=[b,a];
    console.log(a);//3

解体オブジェクト

一般的な使用法

    let a,b;
    ({ a, b } = { a: 2, b: 3 })
    console.log(a,b);//2,3;

    //变量名与属性名一致
    let {name}={name:'小明',age:18};
    console.log(name);//小明

    // 变量名与属性名不一致
    let {a:name,b:age}={a:'小明',b:18};
    console.log(name,age);//小明 18

解体が失敗した場合は、変数の値は未定義に等しいです。

let {a}={b:2};
a;//undefined

ネストされました

function fn() {
    return {
        name: '小明',
        userList: [
            { name: '小红' }
        ]
    }
}

let res = fn();
let { name: person, userList: [{ name: otherPerson }] } = res;

console.log(person, otherPerson);//小明 小红

解体モードは、ネストされたオブジェクトでは存在しない属性や親、子オブジェクトが存在する場合に、スローされます。

let {a: {b}} = {b: 666};

既定値に設定

let {a=1}={a:3};

おすすめ

転載: www.cnblogs.com/roseAT/p/11444112.html