溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用es6函數(shù)之rest參數(shù)

發(fā)布時(shí)間:2020-08-03 09:45:43 來源:億速云 閱讀:186 作者:小豬 欄目:web開發(fā)

這篇文章主要講解了如何使用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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI