ES6 展开运算符

时间:2021-08-27 19:15:47

展开运算符 ...

数组展开运算符:

{
    // 展开运算符: 把一条数据展开了,或者把一个数组进行展开了.
    let arr = [1,2,3,4];
    // let arr2 = ["a","b","c","d"];//想把arr里面内容放到其中的位置
    let arr2 = ["a","b",...arr,"c","d"];
    console.log(arr2);//["a", "b", 1, 2, 3, 4, "c", "d"]

    // 通过配合解构赋值 -> 剩余参数
    let [a,b,...c] = arr;
    console.log(a,b,c);//1 2 [3, 4]
}

对象展开运算符:

{
    let obj = {
        a:1,
        b:2
    }
    let obj2 = {
        ...obj,
        c:3,
        d:4
    }
    console.log(obj2);//{a: 1, b: 2, c: 3, d: 4} 把obj所有内容都弄进来了!
    // 对象展开运算符中的剩余参数
    let {a,b,...c} = obj2;
    console.log(a,b,c); //1 2 {c: 3, d: 4}
}

对象的传址问题: 不建议对象直接进行复址,因为当另一个进行修改的时候,本来那个也是发生变化的.

{
    // 关于对象的传址的问题:
    let obj = {
        a:10,
        b:20
    }
    
    /* let obj2 = obj;
    obj2.a = 20;
    console.log(obj.a);//20; */

    let obj2 = {...obj}
    obj2.a = 20;
    console.log(obj.a);//10;没有发生变化
}