展开运算符在语法上与rest参数相似,也是3个点,它可以将一个数组转换为各个独立的参数,也可以用于取出对象的所有可遍历属性,而rest参数是指多个独立的参数,并通过整合后的数组来访问,代码如下所示:
function sum(a,b,c){
return a + b + c;
}
let arr = [1,2,3];
sum(...arr);
展开运算符的作用:
1. 复制数组
let arr1 = [1,2,3];
let arr2 = arr1;
let arr3 = [...arr1];
console.log(arr2[0]); // 1
console.log(arr3[0]); // 1
2. 合并数组
let arr1 = ["a"];
let arr2 = ["b","c"];
let arr3 = ["d","e"];
console.log([...arr1,...arr2,...arr3]); // ["a", "b", "c", "d", "e"]
3. 取出对象的所有可遍历属性,复制到当前对象中
let book = {
title: "Vue.js",
price: 98
}
let bookDetial = {...book,desc:"a fine book"};
console.log(bookDetial);
/* {
title: "Vue.js",
price: 98,
desc:"a fine book"
}*/