国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

es6基礎0x004:剩余參數

waltr / 641人閱讀

摘要:概述剩余參數將沒有對應形參的參數聚合成一個數組語法只聚合未對應形參參數剩余參數只會將沒有對應形參的參數聚合成一個數組而則是包含了所有的參數。剩余參數是數組剩余參數始終是一個數組,而不像是一個偽數組轉化成數組解構剩余參數使用翻譯翻譯后

0x000 概述

剩余參數將沒有對應形參的參數聚合成一個數組

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

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

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 剩余參數是數組

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

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)) // 轉化成數組
}
add(1,2,3) // true 1 2 3 false 1, 2, 3, 4
0x004 解構剩余參數
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;
  });
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99145.html

相關文章

  • es6基礎0x007:展開

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

    RyanQ 評論0 收藏0
  • es6基礎0x001:箭頭函數

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

    stonezhu 評論0 收藏0
  • es6基礎0x003:默認參數

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

    james 評論0 收藏0
  • es6基礎0x012:Map

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

    DesGemini 評論0 收藏0
  • es6基礎0x021:反射

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

    booster 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<