- Objective:
- Breadcrumb:
# 概念阐释
## 语义
传播语法(Spread syntax)是一种传递[[JavaScript 数组]]或[[JavaScript 对象]]的简洁方法,使用传播语法可以将数组或对象中的所有元素传递到其他数组或对象中。它用三个点(`...`)来表示。
## 语法
```js
...array
...object
```
# 实例
### 数组中的传播语法
**示例 1 - 合并数组:**
```js
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const combinedArray = [...array1, ...array2]; // combinedArray 的值为 [1, 2, 3, 4, 5, 6]
```
**示例 2 - 插入元素:**
```js
const initialArray = ['a', 'b', 'c'];
const newArray = ['x', ...initialArray, 'y']; // newArray 的值为 ['x', 'a', 'b', 'c', 'y']
```
### 对象中的传播语法
在对象中,传播语法可以用于合并对象或创建对象的副本,同时添加或覆盖某些属性。
**示例 3 - 合并对象:**
```js
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const combinedObj = {...obj1, ...obj2}; // combinedObj 的值为 { a: 1, b: 3, c: 4 }
```
`obj2` 中的 `b` 属性覆盖了 `obj1` 中的 `b` 属性。
**示例 4 - 添加/覆盖属性:**
```js
const originalObj = { a: 1, b: 2 };
const newObject = {...originalObj, b: 3, d: 4}; // newObject 的值为 { a: 1, b: 3, d: 4 }
```
这里,`originalObj` 被复制到一个新对象 `newObject`,同时更新了 `b` 的值,并添加了一个新属性 `d`。
# 相关内容
# 参考资料
[Spread syntax (...)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)