一、Rest参数核心语法与特性
1. 基础定义规则
javascript
function sum(num1, num2, ...restParams) {
console.log(restParams); // [3,4,5]
}
sum(1,2,3,4,5);
• 必须末位声明 :Rest参数必须是最后一个形参,否则触发SyntaxError
• 自动数组转换 :未匹配的剩余参数自动转为数组,无参数时返回空数组
• 单函数唯一性:每个函数仅允许一个Rest参数
二、实战应用场景
1. 可变参数处理(替代arguments)
javascript
// 传统方式
function legacySum() {
return Array.from(arguments).reduce((a,b) => a+b);
}
// Rest参数方案
function modernSum(...nums) {
return nums.reduce((a,b) => a+b);
}
优势:无需手动转换数组,支持map
/filter
等链式操作
2. 函数参数转发
javascript
function proxyFunc(...args) {
targetFunc(...args); // 透传所有参数
}
3. 解构黑科技
javascript
// 数组解构
const [head, ...tail] = [1,2,3,4]; // head=1, tail=[2,3,4]
// 对象解构
const {name, ...address} = userProfile;