ES6-Rest参数和扩展运算符

翻看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;
}

你可能感兴趣的:(ES6-Rest参数和扩展运算符)