### 一、扩展符数组和对象中使用
#### 1、数组和对象合并
```
//数组
var arr1 = [8]
var arr2 = [9,11,12,13]
arr1.push(...arr2)
var newArr = [...arr1, ...arr2]
//对象
var obj = {name : 'hcc'}
var obj1 = {age : 27}
var newObj = {...obj, ...obj1}
```
#### 2、数组和对象复制
~~~
//数组
var arr1 = [8]
var copyArr = [...arr1]
//对象
var obj1 = {name: 'hcc'}
var copyObj = {...obj1}
~~~
此拷贝为只拷贝了第一层,arr1中如果是引用类型数据,是会指向同一个引用。
#### 3、数组的结构赋值
~~~
//数组
var [a, ...b] = [2,3,4,5,6];
console.log(a, b);
// 2 [ 3, 4, 5, 6 ]
var [c, d, ...e] = [2,3,4,5,6];
console.log(c, d, e)
// 2 3 [ 4, 5, 6 ]
//对象
var {a, b, ...c} = {a : 12, b : 23, d : 34, c : 345}
console.log(a, b, c)
// 12 23 { d: 34, c: 345 } 对象解构使得a为12, b为23
~~~
### 二、扩展符字符串中使用
~~~
var a = 'test'
var b = [...a]
console.log(b) // [ 't', 'e', 's', 't' ]
~~~