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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:48:18
字體:
來源:轉載
供稿:網友

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

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

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"

小節

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

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕久热精品视频在线| 亚洲欧洲成视频免费观看| 欧美高清自拍一区| 国产免费一区二区三区在线能观看| 国产精品h片在线播放| 3344国产精品免费看| 欧美日韩另类视频| 久久久精品久久久久| 三级精品视频久久久久| 国产精品情侣自拍| 亚洲综合大片69999| 久久视频精品在线| 亚洲激情第一页| 91精品国产色综合| 欧美在线影院在线视频| 91亚洲国产成人久久精品网站| 久久99久久亚洲国产| 伊人久久久久久久久久久久久| 亚洲午夜色婷婷在线| 91香蕉亚洲精品| 国产成人免费av电影| 国产精品天天狠天天看| 色999日韩欧美国产| 少妇av一区二区三区| 日韩黄在线观看| 尤物九九久久国产精品的分类| 成人免费直播live| 国产欧美婷婷中文| 欧美成人中文字幕| 久久精品视频在线观看| 欧美成人性生活| 亚洲欧美日韩国产中文专区| 亚洲国产成人精品久久久国产成人一区| 国产精品久久久久影院日本| 亚洲综合中文字幕在线观看| 欧美丰满老妇厨房牲生活| 成人精品视频99在线观看免费| 国产男女猛烈无遮挡91| 91精品免费视频| 欧美成人免费播放| 色99之美女主播在线视频| 中文字幕在线观看日韩| 51ⅴ精品国产91久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 成人网在线免费看| 欧美高清视频一区二区| 欧美激情亚洲激情| 日韩动漫免费观看电视剧高清| 中文字幕欧美日韩| 国产精品久久久久久久久久新婚| 日本国产一区二区三区| 亚洲国产中文字幕久久网| 欧美日韩激情小视频| 亚洲精品日产aⅴ| 日韩一区二区三区国产| 亚洲欧美日韩国产中文专区| 欧美一区二区大胆人体摄影专业网站| 成人国产精品久久久| 午夜精品视频网站| 日韩av大片免费看| 亚洲国产一区二区三区四区| 久久亚洲精品小早川怜子66| 九九久久国产精品| 精品国产视频在线| 午夜精品一区二区三区在线播放| 成人亚洲激情网| 成人久久久久久| 狠狠久久亚洲欧美专区| 亚洲男人av在线| 日韩有码视频在线| 亚洲国产精久久久久久| 海角国产乱辈乱精品视频| 国产免费亚洲高清| 国产在线精品播放| 亚洲视频777| 午夜精品一区二区三区在线视频| 国产精品aaa| 欧美日韩激情视频| 日韩高清a**址| 亚洲精品av在线播放| 成人免费高清完整版在线观看| 亚洲社区在线观看| 国产精品18久久久久久麻辣| 日韩第一页在线| 日韩在线观看免费全| 国产精品精品视频| 国产精品国产自产拍高清av水多| 国产欧美日韩中文字幕在线| 日韩av色在线| 久久久久久com| 欧美视频在线观看免费网址| 亚洲欧美精品中文字幕在线| 日韩小视频网址| 欧美香蕉大胸在线视频观看| 亚洲最大在线视频| 国产精品亚洲激情| xxav国产精品美女主播| 久久久免费电影| 欧美视频在线免费看| 欧美黄色小视频| 97国产suv精品一区二区62| 欧美在线激情视频| 日韩精品在线免费| 日韩一级裸体免费视频| 亚洲欧美在线一区二区| 91美女片黄在线观| 538国产精品视频一区二区| 国产香蕉97碰碰久久人人| 国产欧美在线看| 亚洲少妇中文在线| 日日狠狠久久偷偷四色综合免费| 欧美最猛黑人xxxx黑人猛叫黄| 在线观看国产精品91| 日韩av在线一区二区| 亚洲精品自拍视频| 亚洲夜晚福利在线观看| 久久精品久久久久久| 中文字幕亚洲一区在线观看| 日韩欧美在线免费| 欧美日韩成人免费| 欧美丝袜一区二区三区| 伊人亚洲福利一区二区三区| 色偷偷av一区二区三区乱| 日本国产欧美一区二区三区| 国产91在线高潮白浆在线观看| 日韩激情在线视频| 欧美黑人性生活视频| 日韩成人高清在线| 日韩久久精品电影| 激情亚洲一区二区三区四区| 亚洲午夜国产成人av电影男同| 色综合伊人色综合网站| 51精品国产黑色丝袜高跟鞋| 日韩欧美视频一区二区三区| 亚洲欧美日韩一区二区三区在线| 久久人人爽人人爽人人片亚洲| 亚洲欧美另类自拍| 疯狂蹂躏欧美一区二区精品| 国产九九精品视频| 日韩欧美在线视频日韩欧美在线视频| 国产精品96久久久久久又黄又硬| 欧美精品久久久久久久久| 中文字幕不卡在线视频极品| 国产精品激情av电影在线观看| 欧洲一区二区视频| 国产精品一区二区av影院萌芽| 一区二区三区回区在观看免费视频| 国产一区深夜福利| 综合网日日天干夜夜久久| 日韩在线小视频| 亚洲第一av网| 在线观看免费高清视频97| 国产精品高潮在线| 日韩高清免费观看| 日韩电影免费观看在线观看| 欧美国产日本高清在线| 国产69精品久久久久9| 国产精品久久999| 国产成人精品电影| 亚洲一区av在线播放| 国产精品 欧美在线| 国产精品日韩专区| 91影视免费在线观看| 国产精品高潮在线|