您好,登錄后才能下訂單哦!
這篇文章主要講解了如何使用es6函數之rest參數,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
es6引入rest參數(形式為 …變量名),用于獲取函數的多余參數,這樣就不需要使用arguments對象了,rest參數搭配的變量是一個數組,該變量將多余的參數放入數組中。
function add (...values) { let sum = 0; for (var val of values) { sum += val } return sum } add(2, 3, 5) // 10
上面代碼的add函數是一個求和函數,利用rest參數,可以向該函數傳入任意數目的參數。
下面是一個rest參數代替arguments變量的例子。
// arguments變量的寫法 function sortNumbers() { return Array.prototype.slice.call(arguments).sort() } // rest參數的寫法 const sortNumbers = (...numbers) => numbers.sort()
上面代碼的兩種寫法,比較后可以發現,rest參數的寫法更自然也更簡潔。
arguments對象不是數組,而是一個類似數組的對象。所以為了使用數組的方法,必須使用Array.prototype.slice.call先將其轉為數組。rest參數就不存在這個問題,它就是一個真正的數組,數組特有的方法都可以使用。下面是一個利用rest參數改寫數組push方法的例子。
function push(array, ...items) { items.forEach(item => { array.push(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
看完上述內容,是不是對如何使用es6函數之rest參數有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。