# 函数的剩余参数
# 剩余参数是什么
剩余参数(Rest Parameters)是ES6引入的一个新特性,允许我们将一个不定数量的参数表示为一个数组。它使用三个点(...)后跟参数名来表示。
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 输出: 10
# 剩余参数的注意事项
- 剩余参数必须是函数声明中的最后一个参数。
- 一个函数只能有一个剩余参数。
- 剩余参数接收的是一个真正的数组,而不是类数组对象。
- 剩余参数可以为空,此时它会是一个空数组。
# 剩余参数的应用
剩余参数在很多场景下都非常有用:
1. 替代arguments对象
剩余参数提供了一种更清晰、更灵活的方式来处理函数的多个参数。
function logArguments(...args) {
args.forEach(arg => console.log(arg));
}
logArguments('a', 'b', 'c'); // 输出: a, b, c
2. 与解构赋值结合使用
剩余参数可以与解构赋值结合,提取数组的一部分元素。
const [first, second, ...rest] = [1, 2, 3, 4, 5];
console.log(rest); // 输出: [3, 4, 5]
3. 函数参数列表操作
剩余参数可以用于收集函数的多个参数,然后传递给其他函数。
function multiply(multiplier, ...args) {
return args.map(arg => multiplier * arg);
}
console.log(multiply(2, 1, 2, 3)); // 输出: [2, 4, 6]
通过这些应用,剩余参数大大增强了JavaScript函数的灵活性和表达能力。