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 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆5 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF6 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿6746 小时前
vue3-async
前端·javascript·vue.js
YXWik67 小时前
记录前端请求接口在浏览器请求响应的Preview和Response展示的一样的问题
前端
2501_928996227 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
东风破_7 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
原则猫7 小时前
TS 类型工具
前端
excel8 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript
计算机魔术师9 小时前
美国司法部正式站队 OpenAI,AI 训练的版权账要这么算了
前端