arguments類似Array但是並不是Array
而rest就是一個Array
用rest替代atguments
eg:給數組排序
//arguments變量的寫法:
function sortFunc(){
return Array.prototype.slice.call(arguments).sort();
}
//而rest參數的寫法:
const sortFunc = (...numbers) => number.sort();
eg:function foo(a,b,...rest){
console.log(a);
console.log(b);
console.log(rest);
}
foo(1,2,3,4,5) //1,2,Array [3,4,5]
foo(1) //1, undefined, Array[]
rest參數只能寫在最后,前面用...標識,從運行結果可知,傳入的參數先綁定a、b,多余的參數以數組形式交給變量rest,所以,不再需要arguments我們就獲取了全部參數。
如果傳入的參數連正常定義的參數都沒填滿,也不要緊,rest參數會接收一個空數組(注意不是undefined)。
