当前位置: 首页 > news >正文

【ES6】简单剖析一下展开运算符 “ ... “

基本用法


let row = {id: 1,name: 'John Doe',age: 30
};let newRow = { ...row };console.log(newRow);
// 输出: { id: 1, name: 'John Doe', age: 30 }

基本用法就是通过展开运算符,将某个对象中的元素依次展开,然后赋值给新的对象。

但是值得注意的是,这种拷贝是浅拷贝,也就是说,对于来源的对象,里面的属性如果是基本类型的话,他是拷贝了一个副本,但是如果是引用类型(对象或者数组),他是相当于复制了一个引用。

也就是说,如果来源的对象row,里面的引用类型改变了,那么目标的对象newRow里面的引用类型也会改变

let row = {id: 1,name: 'John Doe',address: {street: '123 Main St',city: 'Anytown'}
};let newRow = { ...row };// 修改 newRow 中的嵌套对象 address
newRow.address.street = '456 Elm St';console.log(row.address.street); // 输出: '456 Elm St'
console.log(newRow.address.street); // 输出: '456 Elm St'

同样也可以进行数组的拷贝

let array2 = [4, 5, 6];// 使用展开运算符拷贝两个数组并合并
let copiedArray = [...array1, ...array2];console.log(copiedArray); // 输出: [1, 2, 3, 4, 5, 6]
http://www.lryc.cn/news/350477.html

相关文章:

  • java StringUtils类常用方法
  • 科锐国际(计算机类),汤臣倍健,中建三局,宁德时代,途游游戏,得物,蓝禾,顺丰,康冠科技24春招内推
  • 一些常见开发框架相关题目,RESTful是什么,Electron是什么,Express, Koa
  • C++进阶之路:何为默认构造函数与析构函数(类与对象_中篇)
  • 初识C语言——第二十一天
  • 使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化
  • WSL2-Ubuntu(深度学习环境搭建)
  • 政务服务电子文件归档和电子档案管理系统,帮助组织收、管、存、用一体化
  • 2024.05.15学习记录
  • [前端] 深度选择器deep使用介绍(笔记)
  • simlink 初步了解
  • 【SRC实战】退款导致零元购支付漏洞
  • 一篇文章搞懂退火算法
  • 浅说文心一言
  • IC设计企业如何实现安全便捷的芯片云桌面跨网摆渡?
  • Hello, GPT-4o!
  • colab使用本地数据集微调llama3-8b模型
  • YOLO数据集制作(二)|json文件转txt验证
  • linux常用命令(持续更新)
  • Excel表格导入/导出数据工具类
  • Python自学之路--004:Python使用注意点(原始字符串‘r’\字符转换\‘wb’与‘w区别’\‘\‘与‘\\’区别)
  • javaEE进阶——SpringBoot与SpringMVC第一讲
  • LabVIEW和usrp连接实现ofdm通信系统 如何实现
  • NGINX SPRING HTTPS证书
  • WordPress插件Plus WebP,可将jpg、png、bmp、gif图片转为WebP
  • GitLab CI/CD的原理及应用详解(五)
  • 连锁收银系统如何助力实体门店私域运营
  • JETBRAINS IDES 分享一个2099通用试用码!PhpStorm 2024 版 ,支持一键升级
  • 超级好用的C++实用库之MD5信息摘要算法
  • ssm132医院住院综合服务管理系统设计与开发+vue