1. 程式人生 > >ES6中擴充套件運算子(spread)和剩餘運算子(rest)詳解

ES6中擴充套件運算子(spread)和剩餘運算子(rest)詳解

/******************擴充套件運算子(spread)********************/

     //demo 1  傳遞資料代替多個字串的形式
     function  test(a,b,c){
         console.log(a);
         console.log(b);
         console.log(c);
     }

     var arr = [1, 2, 3];
     test(...arr);
    

     //demo2 將一個數組插入到另一個數據中
     var arr1 = [1, 2, 3,4];
     var arr2 = [...arr1, 4, 5, 6];
     console.log(arr2);


     //demo3  字串轉資料
     var str='loycoder';
     var arr3= [...str];
     console.log(arr3);

 /******************剩餘運算子(rest)********************/

  //demo4  當函式引數個數不確定時,用 rest運算子
    function rest01(...arr) {
        for (let item of arr) {
            console.log(item);
        }
    }
    rest01(1, 3, 5);

    //demo5 當函式引數個數不確定時的第二種情況
    function rest02(item, ...arr) {
        console.log(item);
        console.log(arr);
    }
    rest02(1, 2, 34);

    //demo6 rest運算子配合 解構使用:
    var [a,...temp]=[1, 2, 4];
    console.log(a);
    console.log(temp);

最後總結:

擴充套件運算子用三個點號表示,功能是把陣列或類陣列物件展開成一系列用逗號隔開的值

rest運算子也是三個點號,不過其功能與擴充套件運算子恰好相反,把逗號隔開的值序列組合成一個數組


當三個點(...)在等號左邊,或者放在形參上。為 rest 運算子

當三個在等號右邊,或者放在實參上,是 spread運算子

或者說:

放在被賦值一方是rest 運算子。放在賦值一方式 spread運算子。