JavaScript展开运算符(...)用于将可迭代对象或对象展开为独立元素或属性,支持数组合并与浅拷贝、函数传参、对象合并与解构、类数组转换等,但仅浅层展开且不支持null/undefined。

JavaScript 展开运算符(Spread Operator)用三个点 ... 表示,它的核心作用是将可迭代对象(如数组、字符串、类数组、Map/Set 等)或对象“展开”成独立的元素或属性,从而在需要多个参数、多个值或多个键值对的上下文中使用。
展开运算符最直观的用途是替代 concat() 或 slice() 实现数组操作。
const arr = [...arr1, ...arr2, ...arr3];
const copy = [...original];(比 original.slice() 更简洁)const newArr = [0, ...arr, 99];
当函数接收多个独立参数,而你手头是一个数组时,展开运算符能直接把数组“打散”为参数列表。
apply():Math.max(...numbers) 可直接求最大值,而不用写 Math.max.apply(null, numbers)
new Date(...[2023, 0, 1]) 相当于 new Date(2023, 0, 1)
对象展开用于复制属性、合并对象或提取默认值,常和解构赋值配合使用。
立即学习“Java免费学习笔记(深入)”;
const clone = { ...obj };
const merged = { ...a, ...b };
const updated = { ...obj, id: 123, name: 'new' };
const { id, ...rest } = obj;(rest 是不含 id 的新对象)对类数组对象(如 arguments、NodeList)可直接展开转为真数组,便于使用数组方法。
const args = [...arguments];(ES6+ 中更推荐用剩余参数 ...args)const buttons = [...document.querySelectorAll('button')].map(btn => btn.textContent);[...'hello'] → ['h','e','l','l','o']
不复杂但容易忽略:展开运算符只做一层浅展开,嵌套数组或对象不会递归处理;它也不能直接展开 null 或 undefined,会报错。实际使用中注意数据类型和边界情况即可。
以上就是javascript展开运算符是什么_它有哪些实用的应用场景?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号