ES6展开语法(...)

展开语法顾名思义可以理解为把整体展开成个体

* ES5中对于数组的浅拷贝

arr1=[1,2,3] arr2=[]
1.遍历循环arr1,将每一项push进arr2
2.利用concat方法
3.利用slice方法
ES6中对于数组的浅拷贝
使用展开语法(...)
arr2=[...arr1]

* 字面量对象的拷贝

ES5中
image.png
第二种方法:
let copy2 = JSON.parse(JSON.stringify(obj))

ES6中浅拷贝的方法:

let obj = {a: 1, b: 2};
let copy = {...obj};

通过了上述简单的例子来具体说一下展开语法的定义:
展开语法在函数调用和构造数组时,将字符串和数组在语法层面展开;如果是对象时,将对象的表达式按照 key-value 的方式展开
关键的点有:
1.用于函数调用时的传参;用于处理数组;对象。
2.代替apply方法

* 在字符串中的使用:

语法层面的展开:也就是把一个完整的字符串展开为由单个字符串组成的数组。注意要将其包含在【】中。
举个栗子

const str='segmentfault';
const arr=[...str];
console.log(arr)//(12) ["s", "e", "g", "m", "e", "n", "t", "f", "a", "u", "l", "t"]

* 在数组中使用
展开语法不仅可以用于数组的浅拷贝,还有其他有关数组的操作,比如合并数组:

var aq=[1,2,3];
var we=[4,5,6];
var rt=[...ap,...we];
console.log(rt);//(6) [1, 2, 3, 4, 5, 6]

添加操作:

var add=['hello',...aq];
console.log(add);//(4) ["hello", 1, 2, 3]

综上所述:我们只需要把整个展开字符串看成是一个整体,放在你想要放的位置上就可以了。

* 在对象字面量中使用
在对象字面量中的使用与在数组中的使用类似,这里就不不再详细说了。

你可能感兴趣的:(javascript前端es6)