1>概念:
形式為...變數名,用於獲取函式除開始引數外的引數,可以使用剩餘引數代替arguments物件,但他是乙個真正的陣列。
2>替換arguments**
//arguments寫法
function sortnumber()
//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,而是用剩餘引數。 剩餘引數Rest與 Spread 語法
可以通過使用三個點 並在後方跟著包含剩餘引數的陣列名稱,將其包含在函式定義中,也就是將剩餘的引數收集到乙個陣列中 const sumall args console.log sumall 2,3,4 9也可以將第乙個引數作為變數,將其餘的收集起來 const str firstname,args c...
函式的rest引數
如果想要實現為函式傳入多個引數,那麼可以使用arguments物件,例如 function foo foo 1,2,3 12 3 可是我們都知道arguments只是乙個類似陣列的物件而並不是陣列,所以如果我們想使用一些陣列上的方法例如sort方法就很不方便。es6中新增加了rest引數 形式為.變...
剩餘引數語法
剩餘引數語法允許我們將乙個不定數量的引數表示為乙個陣列。語法function a,b,theargs 如果函式的最後乙個命名引數以.為字首,則它將成為乙個陣列,其中從0 包括 到theargs.length 排除 的元素由傳遞給函式的實際引數提供。在上面的例子中,theargs將收集該函式的第三個引...