ES6`…`扩展(spread)/收集(rest)运算符详解
一、扩展运算符
我理解的,用()
包起来就是扩展成单个值,用[]
包起来就是扩展成数组。
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]
种一棵树最早的时间是十年前,其次是现在。