# 函数的剩余参数

作者: 多叉树;转载须注明出处

# 剩余参数是什么

剩余参数(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函数的灵活性和表达能力。