摘要:參數(shù)搭配的變量是一個(gè)數(shù)組,該變量將多余的參數(shù)放入數(shù)組中。擴(kuò)展運(yùn)算符擴(kuò)展運(yùn)算符是三個(gè)點(diǎn)。應(yīng)用擴(kuò)展運(yùn)算符將數(shù)組變?yōu)閰?shù)序列替代數(shù)組的方法由于擴(kuò)展運(yùn)算符可以展開(kāi)數(shù)組,所以不再需要方法,將數(shù)組轉(zhuǎn)為函數(shù)的參數(shù)了。
rest參數(shù)
ES6引入rest參數(shù)( 形式為“...變量名”) , 用于獲取函數(shù)的多余參數(shù), 這樣就不需要使用arguments對(duì)象了。 rest參數(shù)搭配的變量是一個(gè)數(shù)組, 該變量將多余的參數(shù)放入數(shù)組中。
function add(...values) { let sum = 0; for (var val of values) { sum += val; } return sum; } add(2, 5, 3) // 10應(yīng)用:
1.rest參數(shù)中的變量代表一個(gè)數(shù)組, 所以數(shù)組特有的方法都可以用于這個(gè)變量。 下面是一個(gè)利用rest參數(shù)改寫數(shù)組push方法的例子。
function push(array, ...items) { items.forEach(function(item) { array.push(item); }); return array } var a = []; push(a, 1, 2, 3) //[1,2,3]擴(kuò)展運(yùn)算符
擴(kuò)展運(yùn)算符( spread) 是三個(gè)點(diǎn)( ...) 。 它好比rest參數(shù)的逆運(yùn)算, 將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列。
console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll("div")] // [,,] 應(yīng)用:1.擴(kuò)展運(yùn)算符將數(shù)組變?yōu)閰?shù)序列
function add(x,y){ return x + y } var numbers = [4,28]; add(...numbers) //422.替代數(shù)組的apply 方法,由于擴(kuò)展運(yùn)算符可以展開(kāi)數(shù)組, 所以不再需要apply方法, 將數(shù)組轉(zhuǎn)為函數(shù)的參數(shù)了。
// ES5的寫法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f.apply(null, args); // ES6的寫法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f(...args); // 應(yīng)用Math.max方法, 簡(jiǎn)化求出一個(gè)數(shù)組最大元素的寫法 // ES5的寫法 Math.max.apply(null, [14, 3, 77]) // ES6的寫法 Math.max(...[14, 3, 77]) // 等同于 Math.max(14, 3, 77);上面代碼表示, 由于JavaScript不提供求數(shù)組最大元素的函數(shù), 所以只能套用Math.max函數(shù), 將數(shù)組轉(zhuǎn)為一個(gè)參數(shù)序列, 然后求最大值。 有了擴(kuò)展運(yùn)算
符以后, 就可以直接用Math.max3.合并數(shù)組
// ES5的寫法 [1, 2].concat(more) // ES6 [1, 2, ...more] var arr1 = ["a", "b"]; var arr2 = ["c"]; var arr3 = ["d", "e"]; // ES5的合并數(shù)組 arr1.concat(arr2, arr3); // [ "a", "b", "c", "d", "e" ] // ES6的合并數(shù)組 [...arr1, ...arr2, ...arr3] // [ "a", "b", "c", "d", "e" ]文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/95011.html
相關(guān)文章
(...)這三個(gè)點(diǎn)在JavaScript中意味著什么?
摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用??梢詫⑦@種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來(lái)自我在Quora上被要求回答的一個(gè)問(wèn)題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來(lái)有相同問(wèn)題的人來(lái)說(shuō)可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...
(...)這三個(gè)點(diǎn)在JavaScript中意味著什么?
摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用??梢詫⑦@種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來(lái)自我在Quora上被要求回答的一個(gè)問(wèn)題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來(lái)有相同問(wèn)題的人來(lái)說(shuō)可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...
(...)這三個(gè)點(diǎn)在JavaScript中意味著什么?
摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用??梢詫⑦@種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來(lái)自我在Quora上被要求回答的一個(gè)問(wèn)題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來(lái)有相同問(wèn)題的人來(lái)說(shuō)可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...
ECMASCRIPT 6 實(shí)戰(zhàn)之 擴(kuò)展運(yùn)算符
摘要:擴(kuò)展運(yùn)算符是以下簡(jiǎn)稱中又一非常好用的實(shí)戰(zhàn)技術(shù)它的寫法只需要三個(gè)點(diǎn)作用則顧名思義用來(lái)展開(kāi)你想要使用的任意變量本質(zhì)上是對(duì)所有擁有迭代器接口的對(duì)象進(jìn)行迭代。 擴(kuò)展運(yùn)算符(spreading)是 ECMASCRIPT 6(以下簡(jiǎn)稱ES 6) 中又一非常好用的實(shí)戰(zhàn)技術(shù), 它的寫法只需要三個(gè)點(diǎn)(...),作用則顧名思義,用來(lái)展開(kāi)你想要使用的任意變量,本質(zhì)上是對(duì)所有擁有迭代器接口(Iterator)...
ES6—擴(kuò)展運(yùn)算符和rest運(yùn)算符(6)
摘要:擴(kuò)展運(yùn)算符簡(jiǎn)介擴(kuò)展運(yùn)算符是三個(gè)點(diǎn),可以將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列。在實(shí)際項(xiàng)目中靈活應(yīng)用擴(kuò)展運(yùn)算符運(yùn)算符,能寫出更精簡(jiǎn)易讀性高的代碼。 1、擴(kuò)展運(yùn)算符簡(jiǎn)介 擴(kuò)展運(yùn)算符( spread )是三個(gè)點(diǎn)(...),可以將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列。 說(shuō)的通俗易懂點(diǎn),有點(diǎn)像化骨綿掌,把一個(gè)大元素給打散成一個(gè)個(gè)單獨(dú)的小元素。 showImg(https://segmentfault.c...
發(fā)表評(píng)論
0條評(píng)論
Rango
男|高級(jí)講師
TA的文章
閱讀更多
C語(yǔ)言實(shí)現(xiàn)初級(jí)掃雷
閱讀 1686·2021-11-15 11:38
國(guó)慶怎么把主機(jī)帶回家-怎么把臺(tái)式電腦帶回家?
閱讀 4543·2021-09-22 15:33
RackNerd:洛杉磯/德國(guó)/法國(guó)等虛擬主機(jī),50GB SSD空間,2TB月流量,年付9.98美金
閱讀 2347·2021-08-30 09:46
8個(gè)有用的 CSS 技巧:視差圖像,sticky footer 等等
閱讀 2193·2019-08-30 15:43
關(guān)于CSS的個(gè)人理解
閱讀 838·2019-08-30 14:16
響應(yīng)式開(kāi)發(fā)中合理選定CSS媒體查詢分割點(diǎn)
閱讀 2086·2019-08-30 13:09
校招社招必備核心前端面試問(wèn)題與詳細(xì)解答
閱讀 1264·2019-08-30 11:25
前端工具【3】—— 圖片處理
閱讀 714·2019-08-29 16:42