news 2026/9/3 2:40:35

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/9/2 23:24:16

cv_unet_image-matting如何应对低光照图像?预处理配合方案

cv_unet_image-matting如何应对低光照图像?预处理配合方案 1. 为什么低光照图像抠图特别难? 你有没有试过在昏暗环境下拍的人像,上传到抠图工具后边缘发灰、头发丝糊成一片、衣服细节全丢?这不是模型不行,而是低光照…

作者头像 李华
网站建设 2026/9/2 21:28:25

ResNet18 OCR模型训练失败?检查这5个关键点

ResNet18 OCR模型训练失败?检查这5个关键点 你是不是也遇到过这样的情况: 明明按照文档把数据集准备好了,路径填得清清楚楚,参数调得中规中矩,可一点“开始训练”按钮,WebUI就卡在“等待开始训练…”不动了…

作者头像 李华
网站建设 2026/9/1 21:57:05

设计师必备:Qwen-Image-Edit-2511打造高效创意工作流

设计师必备:Qwen-Image-Edit-2511打造高效创意工作流 1. 这不是滤镜,是你的AI图像编辑搭档 你有没有过这样的时刻:客户临时要求把夏日海报改成冬日氛围,但重拍成本太高;设计师刚交稿的工业产品图被反馈“金属质感不够…

作者头像 李华
网站建设 2026/9/2 20:38:38

Qwen3-Embedding-0.6B费用太高?共享GPU资源降本50%案例

Qwen3-Embedding-0.6B费用太高?共享GPU资源降本50%案例 你是不是也遇到过这样的问题:项目刚上线,想用Qwen3-Embedding-0.6B做语义检索或RAG增强,结果一查云服务报价——单卡A10部署成本每月近三千,推理QPS还卡在20左右…

作者头像 李华
网站建设 2026/9/2 20:42:07

想二次开发fft npainting lama?开发者入门必看完整指南

想二次开发FFT NPainting LaMa?开发者入门必看完整指南 1. 这不是普通图像修复工具,而是一个可深度定制的AI重绘平台 你可能已经用过FFT NPainting LaMa的WebUI——那个界面清爽、操作直观、点几下就能把水印、杂物甚至整段文字从照片里“抹掉”的图像…

作者头像 李华
网站建设 2026/9/3 1:00:13

YOLO26实时推理延迟?FPS性能测试报告

YOLO26实时推理延迟?FPS性能测试报告 你是否也遇到过这样的困惑:模型标称“实时”,但一跑起来就卡顿?明明是最新发布的YOLO26,为什么在实际部署中帧率忽高忽低、延迟飘忽不定?本报告不讲理论推导&#xff…

作者头像 李华