亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

ES6基礎之展開語法(Spread syntax)

2019-11-19 12:05:19
字體:
來源:轉載
供稿:網友

展開語法用"..."進行表示,展開語法將可迭代的對象拆分成獨立的值(語法層面展開)。擴展語法通常用于將可迭代的對象的值傳遞到函數的參數中。今天小編將從以下方面進行介紹:

  • 函數傳參中的應用
  • 數組的相關應用
  • 剩余參數的應用
  • 函數傳參中的應用

ES6之前,如果我們希望將數組作為參數分別傳遞給函數中的參數,我們可以使用Function的apply()方法。如下段代碼所示:

function myFunction(a, b) { return a + b;}var data = [1, 4];var result = myFunction.apply(null, data);console.log(result); //Output "5”

從上述代碼,apply方法接受一個數組,將它們分拆成單獨參數傳遞函數進行調用。

ES6的展開語法能讓我們以更簡潔的方式進行調用,如下段代碼所示:

function myFunction(a, b) {  return a + b; }let data = [1, 4];let result = myFunction(...data);console.log(result); //Output "5”

代碼運行期間,JavaScript解釋器調用myFunction之前,將會用1,4表達式替換...運算符:

let result = myFunction(...data);

上述代碼將會進行如下轉換:

let result = myFunction(1,4);

替換后,函數中的代碼將會繼續執行。

數組的相關應用

數組的合并

展開語法可將數組添加到另外一個數組中,成為其中的一部分。

let array1 = [2,3,4];let array2 = [1, ...array1, 5, 6, 7];console.log(array2); //Output "1, 2, 3, 4, 5, 6, 7”

代碼運行期間,如下代碼:

let array2 = [1, ...array1, 5, 6, 7];

上述代碼將會替換成如下代碼:

let array2 = [1, 2, 3, 4, 5, 6, 7];

在push方法中的運用

有時候,我們需要將一個數組的內容追加到另一個數組中,ES6之前我們可以這么做,如下段代碼所示:

var array1 = [2,3,4];var array2 = [1];Array.prototype.push.apply(array2, array1);console.log(array2); //Output "1, 2, 3, 4”

ES6的展開語法能以更簡潔的形式實現,如下段代碼所示:

let array1 = [2,3,4];let array2=[1];array2.push(...array1);console.log(array2); //Output "1, 2, 3, 4”

代碼運行期間,如下代碼:

array2.push(...array1);

上述代碼將會替換成如下代碼:

array2.push(2, 3, 4);

傳遞多個數組參數

我們可以使用展開語法傳遞多個數組進行參數傳遞,如下段代碼所示:

let array1 = [1];let array2 = [2];let array3 = [...array1, ...array2, ...[3, 4]];//multi arrayspreadlet array4 = [5];function myFunction(a, b, c, d, e) { return a+b+c+d+e;}let result = myFunction(...array3, ...array4); //multi array spreadconsole.log(result); //Output "15”

剩余參數的應用

我們知道JS函數內部有個arguments對象,可以拿到全部實參?,F在ES6給我們帶來了一個新的對象,可以拿到除開始參數外的參數,即剩余參數,我們可以使用展開語法...進行獲取。

ES6之前,我們可以這樣獲取剩余參數,如下段代碼所示:

function myFunction(a, b) {  const args = Array.prototype.slice.call(arguments, myFunction.length);  console.log(args);}myFunction(1, 2, 3, 4, 5); //Output "3, 4, 5”

ES6中,上述代碼我們可以這樣改下,如下段代碼所示:

function myFunction(a, b, ...args) {  console.log(args); //Output "3, 4, 5"}myFunction(1, 2, 3, 4, 5);

是不是很簡單,有個我們需要注意的事,一旦函數中的參數第一個參數使用剩余參數,就不能聲明第二個非剩余參數,否則將會拋出錯誤。例如下段代碼所示:

function fn(...rest,foo) {} //Output "SyntaxError: Rest parameter must be last formal parameter"

小節

今天的內容就到這里,展開語法是不是特別的酷啊,在日后的開發中,我們盡量使用新的語法糖替代舊的寫法。讓我們代碼看起來更加干凈、整潔、易懂。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99热精品这里久久精品| 亚洲天堂久久av| 久久综合88中文色鬼| 国产亚洲精品久久| 92看片淫黄大片看国产片| 亚洲精品成人久久久| 日韩中文字幕免费视频| 国产91对白在线播放| 亚洲一级一级97网| 麻豆成人在线看| 97久久超碰福利国产精品…| 亚洲男人第一网站| 久久99视频免费| 91欧美激情另类亚洲| 久久97精品久久久久久久不卡| 97国产在线观看| 欧美日韩国产一区二区三区| 欧美精品中文字幕一区| 国模精品视频一区二区三区| 色青青草原桃花久久综合| 日韩精品在线电影| 欧美精品少妇videofree| 国产精品视频99| 狠狠躁天天躁日日躁欧美| 亚洲第一二三四五区| 国产美女精品视频免费观看| 亚洲成av人影院在线观看| 欧美日韩国产在线看| 国产精品夜间视频香蕉| 成人免费淫片视频软件| …久久精品99久久香蕉国产| 欧美性生活大片免费观看网址| 国产精品啪视频| 亚洲精品少妇网址| 久久久久久九九九| 色噜噜亚洲精品中文字幕| 在线观看欧美成人| 97香蕉超级碰碰久久免费软件| 影音先锋欧美在线资源| 欧美成人午夜激情| 欧美老少配视频| 精品国产网站地址| 国产亚洲精品激情久久| 中文字幕日韩电影| www欧美日韩| 欧美专区日韩视频| 欧美日韩中文在线观看| 午夜精品99久久免费| 狠狠躁天天躁日日躁欧美| 久久人91精品久久久久久不卡| 色综合天天综合网国产成人网| 国产精品高潮呻吟久久av无限| 日韩免费在线看| 久热在线中文字幕色999舞| 蜜月aⅴ免费一区二区三区| 欧美激情成人在线视频| 97色在线视频| 亚洲xxxxx性| 国产精品日韩电影| 精品视频在线观看日韩| 成人免费激情视频| 久久久亚洲福利精品午夜| 亚洲一区精品电影| 亚洲欧美国产高清va在线播| 国产精品国内视频| 国产美女主播一区| 全球成人中文在线| 少妇高潮久久久久久潘金莲| 丝袜美腿精品国产二区| 国产精品色午夜在线观看| 久久精品91久久久久久再现| 亚洲第一区在线| 色偷偷亚洲男人天堂| 国产精品久久久久久久久久三级| 欧美精品18videos性欧| 日韩成人黄色av| 久久伊人免费视频| 精品国产一区二区三区在线观看| 国产成人精品久久亚洲高清不卡| 欧美成人一区二区三区电影| 色久欧美在线视频观看| 亚洲a在线观看| 久久6免费高清热精品| 视频在线观看一区二区| 亚洲性69xxxbbb| 亚洲成人精品在线| 国产69精品久久久久久| 欧美一级片一区| 亚洲欧美国产一区二区三区| 国产精品精品视频| 亚洲日韩中文字幕在线播放| 国产精品99蜜臀久久不卡二区| 亚洲国产一区二区三区四区| 伊人久久大香线蕉av一区二区| 日本19禁啪啪免费观看www| 欧美激情18p| 国内精品小视频在线观看| 欧洲成人免费视频| 亚洲精品美女久久| 国外成人在线直播| 亚洲一区二区三区在线免费观看| www.日韩av.com| 国产亚洲精品综合一区91| 色综合天天狠天天透天天伊人| 国产精品吊钟奶在线| 91在线视频九色| 亚洲国产欧美一区| 日韩av片永久免费网站| 国产91精品最新在线播放| 欧美午夜xxx| 成人精品久久av网站| 三级精品视频久久久久| 亚洲电影av在线| 亚洲在线免费看| 亚洲人在线视频| 国内精品久久影院| 欧美日韩视频在线| 色婷婷av一区二区三区在线观看| 精品国产乱码久久久久久虫虫漫画| 亚洲社区在线观看| 91久久久久久久一区二区| 亚洲www在线| 久久精品国产96久久久香蕉| 亚洲xxxx妇黄裸体| 在线精品国产欧美| 欧美孕妇性xx| 97在线观看视频| 亚洲伦理中文字幕| 欧美放荡办公室videos4k| 久久综合伊人77777| 日韩美女写真福利在线观看| 亚洲电影在线观看| 亚洲人成网站777色婷婷| 欧美大全免费观看电视剧大泉洋| 欧美在线日韩在线| 亚洲男人天堂2023| 国产精品女人久久久久久| 日韩免费观看在线观看| 久久综合网hezyo| 国模吧一区二区三区| 精品久久久国产精品999| 亚洲一区二区三区777| 在线看日韩av| 热99在线视频| 在线日韩精品视频| 91精品啪在线观看麻豆免费| 国产一区二区三区在线免费观看| 亚洲女人天堂色在线7777| 国产一区二区香蕉| 欧美亚洲成人免费| 国产精品美女主播在线观看纯欲| 国产成人亚洲综合91精品| 色av中文字幕一区| 中文字幕亚洲欧美| 91免费综合在线| 欧美激情免费在线| 精品亚洲国产视频| 成人av在线天堂| 久久精品99久久香蕉国产色戒| 欧美一级成年大片在线观看| 97国产精品视频人人做人人爱| 欧美日韩国产精品| 日韩成人在线电影网| www.精品av.com|