React中的三个点是什么意思?解释扩展运算符(spread syntax)
你好!我开始学习React,经常在代码示例中看到对象或数组前面有奇怪的三点。例如:
```javascript
const newObject = { ...oldObject, newKey: 'value' };
```
或者在JSX中:
```jsx
const props = { name: 'John', age: 30 };
```
我明白这与数据复制有关,但不太理解。当我尝试在没有这些点的情况下编写类似代码时,总是出错。例如,我想合并两个对象:
```javascript
const user = { name: 'Alice' };
const details = { age: 25, city: 'Moscow' };
const merged = user + details; // 错误!
```
或者复制数组:
```javascript
const arr1 = [1, 2, 3];
const arr2 = arr1; // 但这是引用,不是副本!
arr2.push(4);
console.log(arr1); // [1, 2, 3, 4] — 不是我所期望的
```
请告诉我这三个点是什么?它们在JavaScript和React中如何工作?为什么这么流行?以及如何正确复制对象和数组而不改变原始数据?