ES6`…`擴充套件(spread)/收集(rest)運算子詳解
阿新 • • 發佈:2020-08-03
一、擴充套件運算子
我理解的,用()
包起來就是擴充套件成單個值,用[]
包起來就是擴充套件成陣列。
1.代替apply
var test = function(a,b,c){
console.log(a,b,c);
}
var arr = [1,2,3];
test(...arr); // 1 2 3
用apply的寫法:
test.apply(null,arr);
2.代替concat
var arr1 = [1,2,3,4];
var arr2 = [0,...arr1,5,6];
console.log(arr2); // [0, 1, 2, 3, 4, 5, 6]
用concat的寫法:
[0].concat(arr1,5,6); // [0, 1, 2, 3, 4, 5, 6]
3.代替split
var str = 'hello';
var arr3 = [...str];
console.log(arr3); // ["h", "e", "l", "l", "o"]
用split的寫法:
'hello'.split(''); // ["h", "e", "l", "l", "o"]
二、收集運算子
1.接收不確定個數的形參
此功能和JAVA
一樣,當形參傳入個數不確定時可用在形參上。
var rest2 = function(item, ...arr){
console.log(item,arr);
}
rest2('hello',2,3,3,4); // hello [2, 3, 3, 4]
2.配合解構時使用
var [a,...temp] = [1,2,3,4];
console.log(a,temp); // 1 [2, 3, 4]