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