mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-25 03:02:21 +00:00
docs(array): edit spread operator #694
This commit is contained in:
parent
688ca45e6f
commit
cdc7e48d93
@ -163,24 +163,34 @@ const [...a2] = a1;
|
|||||||
扩展运算符提供了数组合并的新写法。
|
扩展运算符提供了数组合并的新写法。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// ES5
|
const arr1 = ['a', 'b'];
|
||||||
[1, 2].concat(more)
|
const arr2 = ['c'];
|
||||||
// ES6
|
const arr3 = ['d', 'e'];
|
||||||
[1, 2, ...more]
|
|
||||||
|
|
||||||
var arr1 = ['a', 'b'];
|
// ES5 的合并数组
|
||||||
var arr2 = ['c'];
|
|
||||||
var arr3 = ['d', 'e'];
|
|
||||||
|
|
||||||
// ES5的合并数组
|
|
||||||
arr1.concat(arr2, arr3);
|
arr1.concat(arr2, arr3);
|
||||||
// [ 'a', 'b', 'c', 'd', 'e' ]
|
// [ 'a', 'b', 'c', 'd', 'e' ]
|
||||||
|
|
||||||
// ES6的合并数组
|
// ES6 的合并数组
|
||||||
[...arr1, ...arr2, ...arr3]
|
[...arr1, ...arr2, ...arr3]
|
||||||
// [ 'a', 'b', 'c', 'd', 'e' ]
|
// [ 'a', 'b', 'c', 'd', 'e' ]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
不过,这两种方法都是浅拷贝,使用的时候需要注意。
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const a1 = [{ foo: 1 }];
|
||||||
|
const a2 = [{ bar: 2 }];
|
||||||
|
|
||||||
|
const a3 = a1.concat(a2);
|
||||||
|
const a4 = [...a1, ...a2];
|
||||||
|
|
||||||
|
a3[0] === a1[0] // true
|
||||||
|
a4[0] === a1[0] // true
|
||||||
|
```
|
||||||
|
|
||||||
|
上面代码中,`a3`和`a4`是用两种不同方法合并而成的新数组,但是它们的成员都是对原数组成员的引用,这就是浅拷贝。如果修改了原数组的成员,会同步反映到新数组。
|
||||||
|
|
||||||
**(3)与解构赋值结合**
|
**(3)与解构赋值结合**
|
||||||
|
|
||||||
扩展运算符可以与解构赋值结合起来,用于生成数组。
|
扩展运算符可以与解构赋值结合起来,用于生成数组。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user