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