JavaScript剩余参数(Rest Parameters)是用...args语法将函数末尾的多余参数收集为真数组,支持数组方法且兼容箭头函数,区别于类数组的arguments对象。
JavaScript剩余参数(Rest Parameters)是一种语法特性,允许函数接收任意数量的参数,并将它们收集到一个真正的数组中。它用三个点 ... 加上一个参数名表示,比如 ...args,必须放在参数列表的最后。
剩余参数不是 arguments 对象,而是标准数组,可以直接调用 map、filter、reduce 等方法。
undefined
arguments 混用(虽然可以共存,但不推荐)示例:
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
sum(1, 2, 3); // 6
sum(); // 0
arguments 是类数组对象,没有数组方法;剩余参数是真数组,更简洁、更现代。
arguments 在箭头函数中不可用;剩余参数在箭头函数中完全支持arguments 包含所有实参(包括命名参数),剩余参数只收集“多余”的那部分剩余参数适合处理不确定参数个数的逻辑,比如工具函数、代理封装、参数预处理等。
Math.max(...arr1, ...arr2) 类似逻辑function foo(a, b, ...rest),前两个是确定参数,后面全归 rest剩余参数不是万
能的,使用时需留意语法约束和语义意图。
function f(...rest, last) {} ❌function f(...a, ...b) {} ❌...args,不能省略 ...