JavaScript Rest 参数:新手也能轻松掌握的进阶技巧!

一、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;
相关推荐
data analyse 456几秒前
SourceMap 上传版本与报错版本对不上?版本校验与错误还原设计
大数据·前端·人工智能·数据分析
前端双越老师26 分钟前
程序员 1v1 访谈系列第三期:先不要想在工作中有突破
前端·ai编程·全栈
浮生望30 分钟前
从作用域链到 React 陈旧闭包:为什么函数式更新能拿到最新 state
javascript
小羊没烦恼!31 分钟前
浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色
前端·数据库·后端·python·web安全·oracle
myaifas34 分钟前
新人的第一个任务该怎么选
前端·产品经理
怕浪猫1 小时前
前端转全栈最低成本的技术栈选择
前端·javascript·面试
狂师1 小时前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
前端·程序员·测试
data analyse 4561 小时前
页面卸载时埋点上报总丢失?sendBeacon 上报与补偿方案
大数据·运维·服务器·前端·数据库·人工智能·数据分析
WebInfra1 小时前
Rsdoctor 2.0 发布:Agent 驱动的全自动优化工具
前端·javascript·node.js
乘风gg1 小时前
AI Coding 时代最值钱的东西,软件工程(上)
前端·ai编程·claude