剩余参数是JavaScript中用于收集函数多余参数的语法,使用...定义,必须位于参数末尾且只能有一个,其本质为真数组,可直接调用map、filter等方法,区别于arguments类数组对象,适用于处理不定数量参数的场景,如求和、乘法运算等,使代码更简洁清晰。

在JavaScript中,剩余参数(Rest Parameters)是一种方便的语法,允许我们将多个传入函数的参数收集到一个数组中。它使用三个点(...)加参数名的形式定义,通常用于处理不确定数量的函数参数。
基本语法
剩余参数出现在函数定义的最后,将所有剩余的实际参数打包成一个数组:
function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0); }调用 sum(1, 2, 3, 4) 时,numbers 就是 [1, 2, 3, 4],函数会返回它们的总和。
与arguments对象的区别
arguments 是类数组对象,存在于非箭头函数中,但它不是真正的数组,不能直接使用 map、filter 等数组方法。而剩余参数是真正的数组实例,可以直接调用数组方法。
立即学习“Java免费学习笔记(深入)”;
function example() { console.log(Array.isArray(arguments)); // false }function withRest(...args) { console.log(Array.isArray(args)); // true }
剩余参数必须放在最后
一个函数只能有一个剩余参数,并且它必须是最后一个参数:
// 正确 function logFirstAndRest(first, ...rest) { console.log('第一个:', first); console.log('其余:', rest); }// 错误!剩余参数不能在后面还有其他参数 function invalid(...rest, last) { } // SyntaxError
实际应用场景
- 替代 arguments 实现更清晰的参数处理
- 封装工具函数,如求最大值、拼接字符串等
- 配合解构提取前几个参数,其余用剩余参数收集
例如:
function multiply(factor, ...values) { return values.map(v => v * factor); } multiply(2, 1, 2, 3); // [2, 4, 6]基本上就这些。剩余参数让处理动态参数变得更简洁直观,推荐在现代JavaScript开发中优先使用。











