javascript - es6擴(kuò)展運(yùn)算符...的問題
問題描述
擴(kuò)展符復(fù)制數(shù)組我能理解,但用于函數(shù)傳遞參數(shù)的不懂

如上,為什么函數(shù)參數(shù)加上擴(kuò)展運(yùn)算符以后,就能接受若干個(gè)參數(shù)?
fn(...arg)要怎么理解
問題解答
回答1:函數(shù)定義的時(shí)候, 這應(yīng)該叫剩余參數(shù).
如果函數(shù)的最后一個(gè)命名參數(shù)以...為前綴,則在函數(shù)被調(diào)用時(shí),該形參會(huì)成為一個(gè)數(shù)組,數(shù)組中的元素都是傳遞給該函數(shù)的多出來的實(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ù)的形參本來就會(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來獲取.

函數(shù)參數(shù)可以通過arguments這個(gè)類數(shù)組對(duì)象獲得,你傳入的任意多參數(shù)本質(zhì)上在函數(shù)內(nèi)部就是以類數(shù)組對(duì)象存在的,所以加上擴(kuò)展運(yùn)算符,只是把這個(gè)類數(shù)組變成了參數(shù)序列
相關(guān)文章:
1. boot2docker無法啟動(dòng)2. docker-compose中volumes的問題3. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””4. docker容器呢SSH為什么連不通呢?5. java - SSH框架中寫分頁(yè)時(shí)service層中不能注入分頁(yè)類6. dockerfile - 為什么docker容器啟動(dòng)不了?7. 關(guān)于docker下的nginx壓力測(cè)試8. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值9. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.10. nignx - docker內(nèi)nginx 80端口被占用

網(wǎng)公網(wǎng)安備