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 的同学,不妨现在就打开浏览器控制台试一试,几分钟就能上手。第一次发文,如有不足,欢迎评论区指正,互相学习!

相关推荐
2301_815645387 小时前
react
前端·react.js
FirstFrost --sy7 小时前
基于高并发服务器的web小游戏测试
服务器·前端·javascript·c++·python·集成测试
youyu-youyu7 小时前
oss阿里云图片链接url高清图片设置为缩略图 vue 减少加载体积流量
前端·javascript·vue.js·阿里云·云计算
独隅7 小时前
前端工程化在Chrome插件开发中的具体实践完全指南
前端·chrome
sbjdhjd7 小时前
Tomcat(下) 集群高可用实战:反向代理・负载均衡・分布式 Session
运维·前端·云原生·开源·tomcat·负载均衡·memcached
低保和光头哪个先来8 小时前
聊聊 CSS 编译和 scoped 实现
前端·css·vue.js
object not found8 小时前
Node.js fs 常用 API 整理:node:fs/promises、node:fs、fs 到底怎么用
开发语言·前端·javascript
LiuJun2Son8 小时前
Angular 快速入门:服务和依赖注入
前端·javascript·angular.js
kidding7238 小时前
BMI 健康测量仪工具类小程序
前端·微信小程序·小程序
KaMeidebaby8 小时前
卡梅德生物技术快报|兔单克隆抗体应用实战:禽源病原 IFA 检测全流程拆解
前端·人工智能·物联网·算法·百度