javascript - es6擴(kuò)展運(yùn)算符...的問(wèn)題
問(wèn)題描述
擴(kuò)展符復(fù)制數(shù)組我能理解,但用于函數(shù)傳遞參數(shù)的不懂
如上,為什么函數(shù)參數(shù)加上擴(kuò)展運(yùn)算符以后,就能接受若干個(gè)參數(shù)?
fn(...arg)要怎么理解
問(wèn)題解答
回答1:函數(shù)定義的時(shí)候, 這應(yīng)該叫剩余參數(shù).
如果函數(shù)的最后一個(gè)命名參數(shù)以...為前綴,則在函數(shù)被調(diào)用時(shí),該形參會(huì)成為一個(gè)數(shù)組,數(shù)組中的元素都是傳遞給該函數(shù)的多出來(lái)的實(shí)參的值。
看 MDN 詳細(xì)解釋:https://developer.mozilla.org...
回答2:你可以先看一下這個(gè)栗子
這里的...arg其實(shí)是獲取arguments的值,所以你方法可以改寫成這樣
function fn(){ var arg = [...arguments]; console.log(...arg);}回答3:
把a(bǔ)rguments轉(zhuǎn)換成數(shù)組
回答4:官方解釋:
Bind trailing parameters to an array.
用在函數(shù)參數(shù)中,就是將此處開始的參數(shù)轉(zhuǎn)換成一個(gè)數(shù)組。
fn(...args)//所有參數(shù)變?yōu)閿?shù)組fn(a, ...args)//從第二個(gè)參數(shù)變?yōu)閿?shù)組回答5:
函數(shù)的形參本來(lái)就會(huì)保存到argument這個(gè)類數(shù)組里邊,...操作符可以把類數(shù)組轉(zhuǎn)成數(shù)組
回答6:你需要ECMAScript 6 入門
回答7:你可以理解為,fn(...arg) 是將參數(shù)的參數(shù),全部放置在arg這個(gè)數(shù)組里.不管你調(diào)這函數(shù)時(shí),傳多少個(gè)參數(shù),都可以由arg來(lái)獲取.
函數(shù)參數(shù)可以通過(guò)arguments這個(gè)類數(shù)組對(duì)象獲得,你傳入的任意多參數(shù)本質(zhì)上在函數(shù)內(nèi)部就是以類數(shù)組對(duì)象存在的,所以加上擴(kuò)展運(yùn)算符,只是把這個(gè)類數(shù)組變成了參數(shù)序列
相關(guān)文章:
1. mysql - AttributeError: ’module’ object has no attribute ’MatchType’2. python - from ..xxxx import xxxx到底是什么意思呢?3. 求大神幫我看看是哪里寫錯(cuò)了 感謝細(xì)心解答4. npm鏡像站全新上線5. javascript - 圖片能在網(wǎng)站顯示,但控制臺(tái)仍舊報(bào)錯(cuò)403 (Forbidden)6. 網(wǎng)頁(yè)爬蟲 - python爬蟲翻頁(yè)問(wèn)題,請(qǐng)問(wèn)各位大神我這段代碼怎樣翻頁(yè),還有價(jià)格要登陸后才能看到,應(yīng)該怎么解決7. php自學(xué)從哪里開始?8. MySQL客戶端吃掉了SQL注解?9. phpstady在win10上運(yùn)行10. 數(shù)據(jù)庫(kù) - MySQL 單表500W+數(shù)據(jù),查詢超時(shí),如何優(yōu)化呢?
