翻看ES6代码,很多时候都会看到三个点(...)的存在,它在ES6语法中,有两种应用形式,分别为函数中的rest参数,以及扩展运算符。
1.Rest参数
Rest参数接受函数的多余参数,组成一个数组,放在形参的最后,形式如下:
function func(a, b, ...theArgs){
//...
}
注意:
- rest参数之后不能再有其他参数(即只能是最后一个参数),否则会报错
- 函数的length属性,不包括rest参数
(function(...a){}).length //0
(function(a, b, ...c){}).length //2
2.扩展运算符
Rest参数可以被解构(通俗一点,将rest参数的数据解析后一一对应)不要忘记参数用[]括起来,因为它是数组
- 数组的扩展
let arr = [4, 8];
console.log(...arr); //4,8
let arr1 = [4, 8];
let arr2 = [1, 3];
[...arr1, ...arr2];//实现了数组的合并
var [x, ...y] = [4, 8, 1, 2]; //y=[8, 1, 2]
let xy = [...'abc']; //xy=["a","b","c"] 实现了对字符串进行拆解
- 函数的扩展
function f(...[a, b, c]) {
return a+b+c;
}