ES6-解构赋值

Posted wuqilang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6-解构赋值相关的知识,希望对你有一定的参考价值。

概念理解:

  数组的解构赋值

  对象的解构赋值  

  字符串的解构赋值

  数值和布尔值的解构赋值

  函数参数的解构赋值

 

数组的解构赋值:

  一般的:

    const arr=[1,2,3,4];
    let [a,b,c,d]=arr;
    console.log(a,b,c,d)    // 1 2 3 4

  复杂点的:

    const arr = [1, 2, [3, 4, [5, 6, 7]]];
    const [, b] = arr;
    console.log(b)  // 2
    const [, , g] = [5, 6, 7];
    console.log(g)  // 7
    const [, , [, , g]] = [3, 4, [5, 6, 7]];
    console.log(g)  // 7
    const arr = [1, 2, [3, 4, [5, 6, 7]]];
    const [, , [, , [, , g]]] = arr;
    console.log(g)  // 7
    const arr1 = [1, 2, 3];
    const arr2 = ["a", "b"];
    const arr3 = ["zz", 1];
    const arr4 = [arr1, arr2, arr3];

    console.log(arr4)   // [[1,2,3],["a","b"],["zz",1]]
// 扩展运算符 
const arr1 = [1, 2, 3]; const arr2 = ["a", "b"]; const arr3 = ["zz", 1]; // const arr4 = [arr1, arr2, arr3]; const arr4 = [...arr1, ...arr2, ...arr3]; console.log(arr4) // [1, 2, 3, "a", "b", "zz", 1]
    const arr = [1, 2, 3, 4];
    const [a, b, ...c] = arr;
    console.log(a,b,c)  // 1 2 [3,4]
    const arr = [1, undefined, undefined];
    const [a, b, c, d] = arr;
    console.log(a, b, c, d)  // 1 undefined undefined undefined
// 默认值
const [a, b = 2, c, d = "d"] = arr; console.log(a, b, c, d) // 1 2 undefined "d" ----有默认值的以默认值为主
    // 交换变量
    let a = 1;
    let b = 2;

    [a, b] = [b, a];
    console.log([a, b])     // [2, 1]

 

对象的解构赋值:

    const {a,b}={a:1,b:2};
    console.log({a,b})    // {a: 1, b: 2}

  新的对象的键名要和被解构对象的键名一样:

    const obj={
        name:"wql",
        age:23
    };
    const {name,age}=obj;
    console.log(name,age)   // wql 23
    console.log({name,age}) // {name: "wql", age: 23}

  结合扩展运算符:

    const obj={
        name:"wql",
        age:23,
        sex:"男"
    };
    const {name,...other}=obj;
    console.log(name,other)     // wql {age: 23, sex: "男"}

 

字符串的解构赋值:

    const str="i am a man";
    const [a,b,c,...other]=str;
    console.log(a,b,c,other)    // i   a (7) ["m", " ", "a", " ", "m", "a", "n"]

 

函数参数的解构赋值:

    function fn([x,y]){
        return [y,x];
    }
    let arr=[1,2];
    arr=fn(arr);
    console.log(arr)    // [2, 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于ES6-解构赋值的主要内容,如果未能解决你的问题,请参考以下文章

ES6-----学习系列二(解构赋值)

阮一峰老师的ES6入门:变量的解构赋值

ES6 之 解构赋值

ES6数组的解构赋值( 下)

Es6 新增解构赋值

ES6学习 第二章 变量的解构赋值