成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

esl6中的三個(gè)點(diǎn)(...)-rest參數(shù)與擴(kuò)展運(yùn)算符

Rango / 1296人閱讀

摘要:參數(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) //42

2.替代數(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.max

3.合并數(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)算符 假...

    Faremax 評(píng)論0 收藏0
  • (...)這三個(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)算符 假...

    Travis 評(píng)論0 收藏0
  • (...)這三個(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)算符 假...

    fjcgreat 評(píng)論0 收藏0
  • 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)...

    habren 評(píng)論0 收藏0
  • 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...

    Amio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<