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

首頁 > 編程 > JavaScript > 正文

JavaScript剩余操作符Rest Operator詳解

2019-11-19 11:09:39
字體:
來源:轉載
供稿:網友

剩余操作符

之前這篇文章JavaScript展開操作符(Spread operator)介紹講解過展開操作符。剩余操作符和展開操作符的表示方式一樣,都是三個點 '…',但是他們的使用場景會不同。

剩余參數

定義函數的時候,如果函數的參數以… 為前綴,則改參數是剩余參數(rest parameter)。剩余參數表示參數個數不確定的參數列表。在函數被調用時,該形參會成為一個數組,數組中的元素都是傳遞給該函數的多出來的實參的值。

獲取參數

剩余操作符可以用來方便地獲取傳進來的參數。

function sum(a,b,...args){ console.log(args.length); // 傳進來的參數的個數 3 let s = a + b; if(args && args.length){  args.forEach(i => {s += i}); }  return s;}sum(1, 2, 3, 4, 5 ); // 傳進來的參數的個數 3

其中第一個形參a對應的是1,第二個形參b對應的2,…args表示的就是[3, 4, 5]。

和arguments的差別

上面剩余參數args是一個數組,而函數的arguments是一個偽數組。應此剩余參數可以使用數組的相關方法sort,map,forEach,pop,而arguments不能。

arguments想要變成數組,可以通過Array.prototype.slice.call方法,使用剩余操作符可以避免將arguments轉為數組的麻煩。

// 下面的代碼模擬了剩余數組function sum(a,b,){ var args = Array.prototype.slice.call(arguments, sum.length);  console.log(args.length); // 傳進來的參數的個數 3 let s = a + b; args.forEach(i => {s += i}); return s;}sum(1, 2, 3, 4, 5 );

而使用剩余操作符,則不需要轉化,直接使用,更加方便。

剩余操作符與解構賦值

我們知道,ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。 比如如下代碼:

let array = [1,2,3]let [a,b,c] = array; // a 1, b 2, c 3

再比如如下代碼:

let obj = {a:1,b:2,c:3}let {a,b,c} = obj; // a 1, b 2, c 3

在解構賦值時,可以使用剩余操作符。剩余操作符所操作的變量會匹配在解構賦值中所有其他變量未匹配到的屬性。
比如如下代碼,others會匹配到first和second對于屬性的余下的屬性:

const { first, second, ...others } = { first: 1, second: 2, third: 3, fourth: 4, fifth: 5}first // 1second // 2others // { third: 3, fourth: 4, fifth: 5 }

對象中余下的屬性值被打包起來構造一個新的對象賦值給了others。

數組也可以通過剩余操作符,把剩余的元素打包成一個新的數組賦值給剩余屬性,代碼如下:

let array = [1,2,3,4,5];let [a,b,...c] = array; // a 1,b 2, c [3,4,5]

剩余操作符和展開操作符

某種程度上,可以任務剩余操作符是展開操作符的相反操作。展開操作符會”展開“數組編程多個元素,剩余操作符會把多個元素壓縮成一個單一的元素。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩中文视频| 日韩高清免费观看| 欧美性高潮在线| 欧美黑人性生活视频| 日韩av毛片网| 影音先锋日韩有码| 亚洲欧美激情另类校园| 国产精品亚洲一区二区三区| 久久久999精品免费| 欧美性在线观看| 国产成人亚洲综合91精品| xvideos国产精品| 欧美放荡办公室videos4k| 亚洲自拍小视频| 亚洲成人久久一区| 久久久久久这里只有精品| 色噜噜狠狠狠综合曰曰曰| 韩国三级电影久久久久久| 欧美激情18p| 中文字幕日韩综合av| 日韩中文字幕在线视频| 欧美成年人视频网站| 亚洲视频在线观看免费| 亚洲成人激情视频| 青青草原一区二区| 成人精品久久av网站| 久久精品视频在线观看| 国产精品自拍小视频| 欧美在线亚洲在线| 欧美一级淫片aaaaaaa视频| 欧美激情2020午夜免费观看| 久久天天躁狠狠躁夜夜爽蜜月| 粗暴蹂躏中文一区二区三区| 国产精品电影在线观看| 日本高清视频一区| 亚洲福利精品在线| 亚洲精品美女久久| 亚洲精品国产精品自产a区红杏吧| 庆余年2免费日韩剧观看大牛| 精品国产一区二区三区久久久狼| 精品久久久久久久久久国产| 538国产精品一区二区免费视频| 色播久久人人爽人人爽人人片视av| 国产精品欧美日韩久久| 亚洲免费视频一区二区| 日韩av免费看网站| 日韩成人性视频| 日韩av在线网页| 国产精品99久久久久久久久久久久| 91精品一区二区| 国产精品小说在线| 国语自产精品视频在免费| 国产精品久久久久av| 57pao成人永久免费视频| 国产精品99久久久久久久久| 青草青草久热精品视频在线网站| 在线观看成人黄色| 欧美视频中文字幕在线| 欧美精品一区在线播放| 日韩欧美中文字幕在线观看| 北条麻妃一区二区三区中文字幕| 欧美精品做受xxx性少妇| 亚洲福利精品在线| 国产亚洲欧洲黄色| 亚洲欧美日韩第一区| 成人免费高清完整版在线观看| 超在线视频97| 这里只有精品视频| www国产亚洲精品久久网站| 精品欧美一区二区三区| 日韩高清人体午夜| 亚洲天堂男人的天堂| 亚洲国内精品在线| 国产精品欧美日韩久久| 在线播放国产精品| 亚洲午夜久久久影院| 日韩中文字幕网址| 亚洲色图美腿丝袜| 久久精品国产精品亚洲| 欧美午夜精品久久久久久人妖| 欧美特级www| 欧美一区二区三区免费视| 曰本色欧美视频在线| 欧美午夜片在线免费观看| 久久成人免费视频| 亚洲乱码国产乱码精品精| 在线观看免费高清视频97| 亚洲精品久久7777777| 亚洲一区美女视频在线观看免费| 国产精品国产三级国产aⅴ浪潮| 不卡伊人av在线播放| 亚洲无限av看| 正在播放欧美视频| 这里只有精品在线观看| 岛国av一区二区三区| 欧美肥老妇视频| 国产精品主播视频| 欧美另类第一页| 国产精品99免视看9| 国产美女主播一区| 夜夜狂射影院欧美极品| 中文字幕一区二区精品| 国产亚洲精品高潮| 日韩在线观看精品| 国产日韩欧美在线看| 亚洲字幕一区二区| 91精品国产一区| 欧美性猛交xxxx富婆弯腰| 国产精品免费在线免费| 日韩精品在线免费观看| 国产主播在线一区| 亚洲国产精久久久久久| 一个人www欧美| 欧美激情在线视频二区| 少妇高潮久久久久久潘金莲| 亚洲2020天天堂在线观看| 精品国产一区二区在线| 68精品国产免费久久久久久婷婷| 日韩美女视频在线观看| 久久久这里只有精品视频| 亚洲日本欧美日韩高观看| 91精品国产91久久久久久| 日韩av手机在线| 国产欧美精品xxxx另类| 亚洲精品久久久久中文字幕二区| 国产成人一区二区| 51ⅴ精品国产91久久久久久| 91精品国产高清久久久久久91| 欧美又大又硬又粗bbbbb| 欧美激情精品久久久久久免费印度| 国产精品美女久久久久av超清| 精品日本高清在线播放| 日韩亚洲第一页| 91在线播放国产| 亚洲国产美女精品久久久久∴| 亚洲91精品在线观看| 欧美日韩成人在线观看| 亚洲精品视频在线播放| 欧美日韩一区二区精品| 欧美国产第一页| 国产精品久久久久99| 91精品视频专区| 久久久av一区| 亚洲区免费影片| 亚洲国产第一页| 久久艳片www.17c.com| 国产亚洲激情视频在线| 一区二区亚洲精品国产| 国产专区欧美专区| 中文字幕日韩免费视频| 亚洲欧美中文日韩在线v日本| 亚洲毛片在线观看.| 国产mv久久久| 国内精品久久久久久影视8| 一区二区三区www| 日韩精品福利在线| 亚洲欧美综合另类中字| 亚洲第一福利网站| 亚洲第一精品久久忘忧草社区| 91av国产在线| 欧美成人黄色小视频| 亚洲欧美激情在线视频| 夜夜躁日日躁狠狠久久88av| 中国china体内裑精亚洲片|