ES6中拓展运算符 ...
...运算符主要用于数组和对象的一些操作。
基本的应用场景分为一下几个:
1、函数调用:把数组转换为一个参数序列
function add(x, y) { return x + y; } const numbers = [4, 38]; add(...numbers) // 42
console.log(...numbers) // 4 38
2、数组和对象的复制拷贝
var arr1 = [1,2,3]; var arr2 = [...arr1]; arr2.push(4); console.log(arr1 === arr2); // false console.log(arr1); // [1,2,3] console.log(arr2);// [1,2,3,4]
var obj1 = { a:1, b:2 }; var obj2 = {...obj1}; console.log(obj2); //{ a:1, b:2} console.log(obj1 === obj2);// false
备注:上面拷贝对象或数组不等于源数组或对象,看起来好像是深拷贝,其实还是一个浅拷贝,还是指向同一个内存地址
3、合并数组、对象
const arr1 = ['a', 'b']; const arr2 = ['c']; const arr3 = ['d', 'e']; // ES5 的合并数组 arr1.concat(arr2, arr3); // [ 'a', 'b', 'c', 'd', 'e' ] // ES6 的合并数组 [...arr1, ...arr2, ...arr3] // [ 'a', 'b', 'c', 'd', 'e' ]
// 构造字面量数组
[1,2,...arr1, ...arr2, ...arr3]
输出 [1,2 'a', 'b', 'c', 'd', 'e' ]
var a={ a:'1' } var b={ b:'2' } var ab={...a , ...b} console.log(ab) //{a: "1", b: "2"}
4、字符串转数组,转对象
var demo = "hello" var str = [...demo]; console.log(str); // ["h", "e", "l", "l", "o"]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee