ES6中擴充套件運算子(spread)和剩餘運算子(rest)詳解
阿新 • • 發佈:2019-08-02
/******************擴充套件運算子(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運算子。