首页 > web前端 > js教程 > 正文

javascript的展开运算符是什么_如何合并数组和对象?

狼影
发布: 2025-12-20 14:27:08
原创
946人浏览过

javascript的展开运算符是什么_如何合并数组和对象?

JavaScript 的展开运算符(Spread Operator)是三个英文句点 ...,它能把可迭代对象(如数组、字符串)或类数组对象“打散”成独立的元素,也支持将对象的属性逐个展开。它常用于数组合并、对象合并、函数调用传参等场景,写法简洁且可读性强。

用展开运算符合并数组

传统方式合并数组常用 concat() 或手动 push,而展开运算符让操作更直观:直接把一个数组“铺开”,再与其他元素一起组成新数组。

Opus
Opus

AI生成视频工具

Opus 77
查看详情 Opus
  • 合并两个或多个数组:
    const arr1 = [1, 2];<br>const arr2 = [3, 4];<br>const merged = [...arr1, ...arr2]; // [1, 2, 3, 4]
    登录后复制
  • 在开头/中间插入元素:
    const nums = [2, 3];<br>const withHead = [1, ...nums, 4]; // [1, 2, 3, 4]
    登录后复制
  • 浅拷贝数组(避免修改原数组):
    const original = [1, 2, 3];<br>const copy = [...original];
    登录后复制

用展开运算符合并对象

对象展开会把自身可枚举属性(不含原型链上的)复制到新对象中。多个对象展开时,**后出现的同名属性会覆盖前面的**,这点和 Object.assign() 行为一致。

  • 基础合并:
    const obj1 = { a: 1, b: 2 };<br>const obj2 = { b: 3, c: 4 };<br>const merged = { ...obj1, ...obj2 }; // { a: 1, b: 3, c: 4 }
    登录后复制
  • 添加/覆盖属性:
    const base = { x: 10 };<br>const extended = { ...base, y: 20, x: 99 }; // { x: 99, y: 20 }
    登录后复制
  • 注意:只做一层浅合并,嵌套对象不会递归处理。
    若需深合并,得配合其他方法(如结构化克隆或第三方库)。

常见注意事项

  • 展开运算符只能用在表达式位置,不能单独一行写 ...arr,否则语法错误。
  • 对对象使用时,不支持 Set、Map 等非普通对象的直接展开(但可用 [...map.keys()] 展开其键或值)。
  • 展开 null 或 undefined 会报错,建议合并前做判空处理,例如:
    { ...(obj || {}), name: 'test' }
  • 与剩余参数(Rest Parameter)符号相同(...),但语义相反:展开是“拆”,剩余是“收”。

以上就是javascript的展开运算符是什么_如何合并数组和对象?的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号