news 2026/4/23 12:53:23

ES6扩展运算符实战案例:数组操作从零实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ES6扩展运算符实战案例:数组操作从零实现

以下是对您提供的博文内容进行深度润色与结构重构后的技术文章。我以一位深耕前端工程多年的实战派技术博主视角,彻底去除AI腔调、模板化表达和教科书式分段,转而采用真实开发者口吻 + 工程现场语境 + 逐层递进逻辑重写全文。语言更凝练、节奏更紧凑、案例更具代入感,同时强化了「原理—陷阱—权衡—选型」这一工程师最关心的决策链条。


...不是语法糖,是JavaScript的数据流开关

上周帮团队重构一个老项目的状态管理模块时,发现一段用了五年的代码:

const newList = oldList.concat([newItem]);

它运行得好好的,直到某天产品经理提了个需求:“用户添加标签后要自动去重,并保持首次出现顺序。”
于是有人加了一行:

const newList = [...new Set(oldList.concat([newItem]))];

看起来很酷?但上线后,列表里某个对象的updatedTime字段开始随机丢失 —— 不是 bug,是引用被悄悄共享了

这让我意识到:我们天天敲...arr,却很少停下来问一句:

这个点,到底在替我们做什么?又在替我们掩盖什么?


它不叫“扩展运算符”,它叫「迭代展开语法」

先破个执念:...根本不是一个运算符(operator)
你不能写let x = ...arr,也不能if (...arr),更不能console.log(...arr)单独执行 —— 它没有返回值,也没有优先级,它只是 JavaScript 解析器在特定上下文中识别的一种语法模式(syntax pattern)

它的真正身份,是可迭代协议(Iterable Protocol)的消费者接口

只要一个值实现了Symbol.iterator方法,它就是“可展开的”。数组有,字符串有,Map/Set有,document.querySelectorAll()返回的NodeList在现代浏览器里也有……但普通对象{a:1}没有 —— 所以[...{a:1}]直接报错。

这不是缺陷,是设计哲学:

JavaScript 不想替你决定“怎么遍历”,只提供统一入口;你怎么定义Symbol.iterator,就决定了...展开成什么。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 7:02:11

零基础入门人脸超分:用GPEN镜像轻松实现照片修复

零基础入门人脸超分:用GPEN镜像轻松实现照片修复 你有没有翻出老相册,发现那些泛黄模糊的旧照,想放大看看亲人年轻时的模样,却只能对着马赛克般的像素叹气?或者收到一张手机拍糊的证件照,反复重拍又怕错过…

作者头像 李华
网站建设 2026/4/17 6:57:05

2025大模型推理趋势入门必看:SGLang+GPU高效部署指南

2025大模型推理趋势入门必看:SGLangGPU高效部署指南 1. 为什么现在必须了解SGLang? 你有没有遇到过这样的情况:好不容易跑通了一个大模型,结果一上真实业务就卡在吞吐量上?用户多一点,响应就变慢&#xf…

作者头像 李华
网站建设 2026/4/15 23:18:00

Unsloth效果展示:微调前后医疗问答准确率对比惊人

Unsloth效果展示:微调前后医疗问答准确率对比惊人 1. 为什么医疗问答特别需要精准微调? 在真实临床辅助场景中,模型答错一个医学问题可能带来严重后果。比如把“急性阑尾炎保守治疗”误判为“可延迟手术”,或混淆“心梗早期ST段…

作者头像 李华
网站建设 2026/4/18 9:43:52

Paraformer-large结合Redis:缓存历史结果提升查询效率

Paraformer-large结合Redis:缓存历史结果提升查询效率 语音识别不是一次性的任务——很多场景下,用户会反复上传同一段会议录音、培训音频或客服对话。每次重新跑一遍Paraformer-large,不仅浪费GPU资源,还拉长了响应时间。有没有…

作者头像 李华
网站建设 2026/4/17 5:35:46

SGLang能做什么?复杂LLM程序部署实战一文详解

SGLang能做什么?复杂LLM程序部署实战一文详解 1. 为什么你需要关注SGLang? 你有没有遇到过这样的情况:好不容易调通了一个大模型,结果一上生产环境就卡在吞吐量上——用户多一点,响应就变慢;想加个JSON输…

作者头像 李华
网站建设 2026/4/23 7:35:26

Paraformer-large如何防攻击?API安全防护实战

Paraformer-large如何防攻击?API安全防护实战 1. 为什么语音识别API也需要安全防护? 很多人以为,语音识别只是个“本地工具”——模型离线、界面在浏览器里、不连外部服务,好像天然就安全。但现实恰恰相反:Gradio界面一…

作者头像 李华