Avatar ·

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中如何工作?为什么这么流行?以及如何正确复制对象和数组而不改变原始数据?