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
)。