ES6引入了rest参数(形式"…变量名"),用于获取函数的多余参数,这样就不需要使用arguments对象。rest参数搭配的变量是一个数组,该变量将多余的参数放入其中。
function add(...value){
let sum=0;
for(var val of values){
sum+=val;
}
return sum;
}
add(2,5,3);//10
rest参数代替参数的写法
function sortNumbers(){
return Array.prototype.slice.call(arguments).sort();
}
const sortNumbers=(...numbers)=>numbers.sort();
rest参数中的变量代表一个数组,所以数组特有的方法都可以用于这个变量。
function push(array,...items){
items.forEach(function(item){
array.push(item);
console.log(item);
});
}
var a=[];
push(a,1,2,3);
rest参数之后不能再有其他参数(即只能是最后一个),否则会报错。
//报错
function f(a,...b,c){
//...
}
//函数的length属性不包括rest参数
(function(a){}).length//1
(function(...a){}).length//0
(function(a,...b){}).length//1