ES6

127 阅读1分钟

#rest参数

ES6引入了rest参数,形式是“...变量名”,用于获取函数的多于参数,这样就无需使用类数组对象arguments对象了,rest参数搭配的变量是一个数组,在函数内部,可以通过for(of)来遍历每一个参数。

function add(...value) {
    var sum=0;
    for(var val of value){
        sum += val;   
    }
    return sum
}

value就是数组,所以可以直接使用数组的方法,相较于arguments,需要使用Array.prototype.slice.call(arguments)或者[].slice.call(arguments)转换后才可以使用数组的方法。

注意:

  • (1)rest参数只能是参数的最后一项,rest后面不可以再有其他参数
function fun(a, b, ...value, c){}  //报错
  • (2)函数的length属性,不包括rest参数
function fun(a, b, ...value){} //fun.length = 2