JavaScript展开运算符的三个妙用

JavaScript 展开运算符的三个妙用

在日常开发中,展开运算符(...)是一个非常实用的语法特性。如果你还没怎么用过它,看完这篇文章或许能帮你打开新思路。

一、合并数组更优雅

过去合并两个数组,我们习惯用 concat,或者写循环。现在一行代码就能搞定:

javascript

ini 复制代码
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combined = [...arr1, ...arr2]; // [1,2,3,4,5,6]

你甚至可以在任意位置插入新元素。比如想生成一个新数组,开头放0,中间放arr1,结尾放4,可以写成 [0, ...arr1, 4],非常灵活。相比传统的 concat,展开运算符的写法更加直观,可读性明显提升。

二、复制数组和对象

想快速复制一个数组或对象,又怕修改原数据?展开运算符可以轻松实现浅拷贝:

javascript

ini 复制代码
const original = { name: 'Tom', age: 18 };
const copy = { ...original };

修改 copy 中的基本类型属性不会影响 original。不过需要注意一个细节:如果原对象的某个属性值本身是对象或数组,那么拷贝过来的只是一个引用,内部的修改依然会同步到原对象。这是浅拷贝的特点,在使用时要根据实际情况决定是否改用深拷贝。

三、函数调用替代 apply

以前把数组作为参数传给函数,常用写法是 fn.apply(null, arr)。现在直接用展开运算符,代码会清爽很多:

javascript

ini 复制代码
const nums = [10, 20, 30];
console.log(Math.max(...nums)); // 30

不仅可读性大大提高,还少写了一个 null 参数,不容易出错。类似的,console.log(...['a','b','c']) 也会依次打印三个字符。

总结

展开运算符虽然看起来只是三个小点,但用好了能让代码更干净、更易读。建议大家在合并数组、复制对象、传递参数时优先想到它。如果你是刚接触 ES6 的同学,不妨现在就打开浏览器控制台试一试,几分钟就能上手。第一次发文,如有不足,欢迎评论区指正,互相学习!

相关推荐
程序员爱钓鱼5 分钟前
配置 GoLand 与 VS Code 开发环境
前端·后端·go
程序员爱钓鱼13 分钟前
Rust Vec 动态数组详解:创建、增删、遍历与排序
前端·后端·rust
LaughingZhu28 分钟前
Product Hunt 每日热榜 | 2026-07-23
前端·神经网络·react.js·搜索引擎·前端框架
自然 醒36 分钟前
记录We码开发者工具的一个bug
前端·javascript·bug
葡萄城技术团队38 分钟前
HTML元素单元格:用自定义 CellType 扩展 SpreadJS 的显示能力
前端·javascript·html
不好听61338 分钟前
Fragment:React 的 `<></>` 和原生的 DocumentFragment,同名不同命
前端·react.js·dom
不好听61344 分钟前
useState 完全解析:初始化、异步更新、以及为什么传函数能解决闭包问题
前端·react.js
神明不懂浪漫2 小时前
【第七章】Java中的常用类
java·开发语言·前端·经验分享·笔记
GuWenyue8 小时前
放弃云端API!一套React+WebGPU本地LLM方案,零数据上传、离线可用
前端·人工智能·前端框架
原则猫9 小时前
函数/变量提升
前端