成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Rango / 1337人閱讀

摘要:參數(shù)搭配的變量是一個數(shù)組,該變量將多余的參數(shù)放入數(shù)組中。擴(kuò)展運(yùn)算符擴(kuò)展運(yùn)算符是三個點(diǎn)。應(yīng)用擴(kuò)展運(yùn)算符將數(shù)組變?yōu)閰?shù)序列替代數(shù)組的方法由于擴(kuò)展運(yùn)算符可以展開數(shù)組,所以不再需要方法,將數(shù)組轉(zhuǎn)為函數(shù)的參數(shù)了。

rest參數(shù)

ES6引入rest參數(shù)( 形式為“...變量名”) , 用于獲取函數(shù)的多余參數(shù), 這樣就不需要使用arguments對象了。 rest參數(shù)搭配的變量是一個數(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ù)中的變量代表一個數(shù)組, 所以數(shù)組特有的方法都可以用于這個變量。 下面是一個利用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) 是三個點(diǎn)( ...) 。 它好比rest參數(shù)的逆運(yùn)算, 將一個數(shù)組轉(zhuǎn)為用逗號分隔的參數(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)算符可以展開數(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方法, 簡化求出一個數(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)為一個參數(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/95011.html

相關(guān)文章

  • (...)這三個點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個點(diǎn)的作用??梢詫⑦@種傳播視為逐個提取所有單個屬性并將它們傳遞給新對象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個問題。下面是我試圖解釋JavaScript中三個點(diǎn)的作用。希望這對于將來有相同問題的人來說可以消除圍繞這個概念的迷霧。 數(shù)組/對象擴(kuò)展運(yùn)算符 假...

    Faremax 評論0 收藏0
  • (...)這三個點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個點(diǎn)的作用??梢詫⑦@種傳播視為逐個提取所有單個屬性并將它們傳遞給新對象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個問題。下面是我試圖解釋JavaScript中三個點(diǎn)的作用。希望這對于將來有相同問題的人來說可以消除圍繞這個概念的迷霧。 數(shù)組/對象擴(kuò)展運(yùn)算符 假...

    Travis 評論0 收藏0
  • (...)這三個點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個點(diǎn)的作用??梢詫⑦@種傳播視為逐個提取所有單個屬性并將它們傳遞給新對象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個問題。下面是我試圖解釋JavaScript中三個點(diǎn)的作用。希望這對于將來有相同問題的人來說可以消除圍繞這個概念的迷霧。 數(shù)組/對象擴(kuò)展運(yùn)算符 假...

    fjcgreat 評論0 收藏0
  • ECMASCRIPT 6 實(shí)戰(zhàn)之 擴(kuò)展運(yùn)算符

    摘要:擴(kuò)展運(yùn)算符是以下簡稱中又一非常好用的實(shí)戰(zhàn)技術(shù)它的寫法只需要三個點(diǎn)作用則顧名思義用來展開你想要使用的任意變量本質(zhì)上是對所有擁有迭代器接口的對象進(jìn)行迭代。 擴(kuò)展運(yùn)算符(spreading)是 ECMASCRIPT 6(以下簡稱ES 6) 中又一非常好用的實(shí)戰(zhàn)技術(shù), 它的寫法只需要三個點(diǎn)(...),作用則顧名思義,用來展開你想要使用的任意變量,本質(zhì)上是對所有擁有迭代器接口(Iterator)...

    habren 評論0 收藏0
  • ES6—擴(kuò)展運(yùn)算符rest運(yùn)算符(6)

    摘要:擴(kuò)展運(yùn)算符簡介擴(kuò)展運(yùn)算符是三個點(diǎn),可以將一個數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列。在實(shí)際項(xiàng)目中靈活應(yīng)用擴(kuò)展運(yùn)算符運(yùn)算符,能寫出更精簡易讀性高的代碼。 1、擴(kuò)展運(yùn)算符簡介 擴(kuò)展運(yùn)算符( spread )是三個點(diǎn)(...),可以將一個數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列。 說的通俗易懂點(diǎn),有點(diǎn)像化骨綿掌,把一個大元素給打散成一個個單獨(dú)的小元素。 showImg(https://segmentfault.c...

    Amio 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<