一.rest参数
rest参数中的变量代表一个数组,所以数组特有的方法都可以用于这个变量
function push(array, ...items) {
items.forEach(function(item) {
array.push(item);
console.log(item);
});
}
二.扩展运算符
好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。
函数调用
function add(x, y) {
return x + y;
}
var numbers = [4, 38];
add(...numbers) // 42
应用场景:
1.合并数组
arr = [...arr1,...arr2]
2.与解析结构结合使用
onst [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
3.函数的返回值
4.字符串转数组
[...'hello']
// [ "h", "e", "l", "l", "o" ]
5.实现了Iterator接口的对象
var nodeList = document.querySelectorAll('div');
var array = [...nodeList];
6.Map和Set结构,Generator函数
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
let arr = […map.keys()]; // [1, 2, 3]
var go = function*(){
yield 1;
yield 2;
yield 3;
};
[…go()] // [1, 2, 3]
7.使用Math简化数组取最大值
console.log(Math.max.apply(null, [14, 7])); //14
console.log(Math.max(...[14, 7])); //14