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

資訊專欄INFORMATION COLUMN

es6基礎(chǔ)0x004:剩余參數(shù)

waltr / 645人閱讀

摘要:概述剩余參數(shù)將沒有對應(yīng)形參的參數(shù)聚合成一個數(shù)組語法只聚合未對應(yīng)形參參數(shù)剩余參數(shù)只會將沒有對應(yīng)形參的參數(shù)聚合成一個數(shù)組而則是包含了所有的參數(shù)。剩余參數(shù)是數(shù)組剩余參數(shù)始終是一個數(shù)組,而不像是一個偽數(shù)組轉(zhuǎn)化成數(shù)組解構(gòu)剩余參數(shù)使用翻譯翻譯后

0x000 概述

剩余參數(shù)將沒有對應(yīng)形參的參數(shù)聚合成一個數(shù)組

0x001 語法
function(a, b, ...theArgs) {
}
0x002 只聚合未對應(yīng)形參參數(shù)

剩余參數(shù)只會將沒有對應(yīng)形參的參數(shù)聚合成一個數(shù)組, 而arguments則是包含了所有的參數(shù)。

function add(a, b, ...theArgs) {
    return {rest: theArgs, arguments}
}
add() 
// {rest: [undefined, undefined, []], arguments: Arguments(0)}
add(1) 
// {rest: [1, undefined, []], arguments: Arguments(1)}
add(1, 2) 
// {rest: [1, 2, []], arguments: Arguments(2)}
add(1, 2, 3, 4, 5) 
// {rest: [1, 2, [3, 4, 5]], arguments: Arguments(5)}
0x003 剩余參數(shù)是數(shù)組

剩余參數(shù)始終是一個數(shù)組,而不像arguments是一個偽數(shù)組

function add(...theArgs) {
    console.log(Array.isArray(theArgs))
    theArgs.forEach((a)=>console.log(a))
    console.log(Array.isArray(arguments))
    Array.prototype.slice.call(arguments, add.length).forEach((a)=>console.log(a)) // 轉(zhuǎn)化成數(shù)組
}
add(1,2,3) // true 1 2 3 false 1, 2, 3, 4
0x004 解構(gòu)剩余參數(shù)
function add(...[a, b, c]){
    return a + b +c
}
add(1, 2, 3) // 6
add(1, 2, 3) // 6
0x005 使用babel翻譯
function add(...num){
  return num.reduce((n1,n2)=>n1+n2)
}

翻譯后

function add() {
  for (var _len = arguments.length, num = Array(_len), _key = 0; _key < _len; _key++) {
    num[_key] = arguments[_key];
  }

  return num.reduce(function (n1, n2) {
    return n1 + n2;
  });
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/99145.html

相關(guān)文章

  • es6基礎(chǔ)0x007:展開

    摘要:概述展開符號真的是一個非常好用的東西,我常用于字符串分割數(shù)組合并數(shù)組拷貝對象合并對象拷貝。 0x000 概述 展開符號真的是一個非常好用的東西,我常用于字符串分割、數(shù)組合并、數(shù)組拷貝、對象合并、對象拷貝。 0x001 語法 ...iterableObj 0x002 函數(shù)調(diào)用的時候參數(shù)展開 這是在函數(shù)調(diào)用的時候,將參數(shù)展開,和剩余參數(shù)有區(qū)別,剩余參數(shù)是在函數(shù)聲明中使用 myFunctio...

    RyanQ 評論0 收藏0
  • es6基礎(chǔ)0x001:箭頭函數(shù)

    摘要:這就是所謂的箭頭函數(shù)不綁定,而在我看來,回調(diào)函數(shù)就是箭頭函數(shù)最好的歸宿。 0x000 概述 箭頭函數(shù)有兩個作用: 更簡短的寫法 不綁定this 0x001 語法一表覽 ()=>{} ()=>{console.log(arrow);return null} ()=>hello (num1, num2)=>num1+num2 num=>++num ()=>({name:arrow})...

    stonezhu 評論0 收藏0
  • es6基礎(chǔ)0x003:默認(rèn)參數(shù)

    摘要:語法使用使用翻譯一下傳值檢測從翻譯的結(jié)果可以看出,默認(rèn)參數(shù)只檢查兩種情況不傳參數(shù)傳入前參后用前面的參數(shù)可以作為后面參數(shù)的默認(rèn)值,甚至可以對前面的參數(shù)做一些特別的操作,比如簡單的加減乘除默認(rèn)參數(shù)調(diào)用函數(shù)賦值默認(rèn)參數(shù)甚至可以調(diào)用函數(shù),可以調(diào)用函 0x000 語法 function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defa...

    james 評論0 收藏0
  • es6基礎(chǔ)0x012:Map

    摘要:概述也是一個新的數(shù)據(jù)結(jié)構(gòu),在中其實(shí)也經(jīng)常用到,比如下面的栗子,我們經(jīng)常這么使用一個對象,與其說他是對象,其實(shí)他更像一個,但是比起真正的,這個還是有點(diǎn)弱了,初始化初始化一個有一個可選的參數(shù),該參數(shù)必須是一個可迭代對象,可迭代對象包括和用戶定 0x000 概述 Map也是一個新的數(shù)據(jù)結(jié)構(gòu),在js中其實(shí)也經(jīng)常用到,比如下面的栗子,我們經(jīng)常這么使用一個對象,與其說他是對象,其實(shí)他更像一個Map...

    DesGemini 評論0 收藏0
  • es6基礎(chǔ)0x021:反射

    摘要:概述反射說起來和上一章節(jié)的代理基本一樣,只是使用的方式不同,設(shè)計理念也不同。 0x000 概述 反射說起來和上一章節(jié)的代理基本一樣,只是使用的方式不同,設(shè)計理念也不同。 反射提供了一系列的靜態(tài)函數(shù),可以使用Reflect.function_name(...prams)調(diào)用,這一系列的方法和代理的處理器對象方法一致 0x001 apply 語法 Reflect.apply(targ...

    booster 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<