1>概念:
形式为...变量名,用于获取函数除开始参数外的参数,可以使用剩余参数代替arguments对象,但他是一个真正的数组。
2>替换arguments代码
//arguments写法
function sortNumber(){
return Array.prototype.sclice.call(arguments)
}
//rest参数写法
const sortNumber=(...numbers)=>numbers.sort();
3>arguments与剩余参数的区别
arguments是一个伪数组,剩余参数是一个真正的数组,具有Array.prototype上所有的方法;
arguments上有callee,calller方法
4>注意点
4.1>rest参数之后不能再跟任何其他参数,否则报错
function f(a,...b,c){//报错
}
4.2>函数的length属性不包括rest参数
console.log(push(a,1,2,3))
console.log(push.length);//1
4.3>从语言角度,arguments和剩余参数是可以同时使用的,但是在箭头函数中arguments会跟随上下文绑定到上层,所以在不确定上下文绑定的情况下,尽量不要在箭头函数中使用arguments,而是用剩余参数。