剩余参数(...)允许函数接收不定数量实参并自动封装为真数组,必须位于形参末位,可与普通参数共存,替代了arguments类数组对象,支持直接调用数组方法且兼容箭头函数。
JavaScript 剩余参数(Rest Parameters)是一种语法特性,用三个点 ... 表示,允许函数接收**不定数量的实参**,并将它们收集为一个真正的数组。它替代了过去依赖 arguments 类数组对象的写法,更简洁、更强大。
剩余参数必须是函数最后一个形参,且前面不能有其他普通参数(除非用默认值或解构等配合)。它会把调用时“多出来的”参数自动装进一个数组里。
function sum(...numbers) { return numbers.reduce((a, b) => a + b, 0); }
function demo(a, ...rest, b) { }(剩余参数不能在中间)function greet(first, ...others) { console.log(first, others); }
arguments 是类数组对象,没有数组方法(如 map、filter),需要手动转成数组;而剩余参数本身就是 Array 实例,开箱即用。
Array.from(arguments).map(x => x * 2) 或 [...arguments].map(...)
numbers.map(x => x * 2)(直接调用)arguments 在箭头函数中不可用,剩余参数可以用于任何函数(包括箭头函数)剩余参数特别适合封装工具函数、代理调用、参数预处理等场景。
const merge = (...arrays) => [].concat(...arrays);
c
onst log = (prefix, ...msgs) => console.log(`[${prefix}]`, ...msgs);
const delay = (fn, ms, ...args) => setTimeout(() => fn(...args), ms);
调用时没传额外参数,剩余参数就是空数组,不会是 undefined,这点很安全。
sum() → numbers 是 [],reduce 可正常返回初始值if (numbers.length === 0) throw new Error('至少传一个数');
arguments 混用:用了剩余参数后,arguments 依然存在,但不推荐再用
# javascript
# java
# 工具
# 区别
# red
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Win11色盲模式怎么开_Win11屏幕颜色滤镜设置【关怀】
php下载安装选zip还是msi格式_两种安装包对比【教程】
Python 模块的 __name__ 属性如何由导入方式决定?
PythonFastAPI项目实战教程_API接口与异步处理实践
Win11怎么更改任务栏颜色_Windows11个性化重音色设置
php本地部署后数据库连接报错_1045accessdenied错误解决方法详解【汇总】
WindowsUSB驱动安装异常怎么办_USB驱动重建与恢复教程
如何使用Golang实现错误包装与传递_Golangfmt.Errorf%w使用实践
Python数据挖掘进阶教程_分类回归与聚类案例解析
Win11怎么设置虚拟内存_Windows 11优化内存性能提升速度【技巧】
Win11如何更改用户账户文件夹名称 Win11修改C:Users用户名【终极教程】
c++如何用AFL++进行模糊测试 c++ Fuzzing入门【安全】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何在 ACF 中正确更新嵌套多层的 Group 字段子字段
php订单日志怎么记录评价_php记录订单评价日志方法【方法】
手机php文件怎么变成mp4_安卓苹果打开php转mp4方法【教程】
Windows系统被恶意软件破坏后的恢复策略_错误提示修复方式
如何使用Golang实现容器安全扫描_Golang Docker镜像漏洞检测方法
Win11怎么修复系统文件_使用sfc命令修复Win11系统【技巧】
Win11怎么设置ip地址_Windows 11手动配置网络IP教程【详解】
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何使用Golang table-driven fuzz测试_多数据随机化发现缺陷
LINUX怎么查看进程_LINUX ps命令查看运行服务
如何在Golang中优化文件读写性能_使用缓冲和并发处理
PHP接收参数长度超限怎么办_修改postmaxsize设置教程【解答】
Win11怎么关闭防火墙通知_屏蔽Win11安全中心安全警告弹窗【技巧】
php错误怎么开启_display_errors与log_errors的设置【汇总】
如何使用Golang实现微服务事件驱动_使用消息总线解耦服务
php转exe用什么工具打包快_高效打包软件推荐【汇总】
如何使用正则表达式提取以编号开头、后接多个注解的逻辑分组块
如何使用Golang实现文件加密_Golang crypto 文件加密示例
Python异步网络编程_aiohttp说明【指导】
如何在Windows上设置闹钟和计时器_系统自带的时钟应用全攻略【生活技巧】
如何使用Golang理解结构体指针方法接收者_Golang修改字段实践
Win11怎么设置任务栏对齐方式_Windows11个性化任务栏行为
php删除数据怎么清空表_truncate与delete区别及用法【汇总】
Win11怎么连接投影仪_Win11多显示器投屏设置指南【步骤】
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Win11无法安装软件怎么办_Win11解除应用安装限制设置【修复】
如何在 Go 中创建包含 map 的 slice(嵌套数据结构)
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
c++的static关键字有什么用 静态变量和静态函数的应用场景【教程】
Python对象比较与排序_魔术方法解析【教程】
为什么本地php环境运行php脚本卡顿_php执行效率优化方法与设置【说明】
c++中如何进行二进制文件读写_c++ read与write函数用法
php在Linux怎么部署_LNMP环境搭建PHP服务的详细指南【指南】
php修改数据怎么改富文本_update更新html内容注意事项【说明】
短链接还原php提示内存不足_调整PHP内存限制设置【技巧】
如何在 Go 项目开发中正确处理本地包导入与远程模块路径的一致性问题
Python邮件系统自动化教程_批量发送解析与模板应用
2025-12-30
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。