摘要:概述剩余參數將沒有對應形參的參數聚合成一個數組語法只聚合未對應形參參數剩余參數只會將沒有對應形參的參數聚合成一個數組而則是包含了所有的參數。剩余參數是數組剩余參數始終是一個數組,而不像是一個偽數組轉化成數組解構剩余參數使用翻譯翻譯后
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, 40x004 解構剩余參數
function add(...[a, b, c]){ return a + b +c } add(1, 2, 3) // 6 add(1, 2, 3) // 60x005 使用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
摘要:概述展開符號真的是一個非常好用的東西,我常用于字符串分割數組合并數組拷貝對象合并對象拷貝。 0x000 概述 展開符號真的是一個非常好用的東西,我常用于字符串分割、數組合并、數組拷貝、對象合并、對象拷貝。 0x001 語法 ...iterableObj 0x002 函數調用的時候參數展開 這是在函數調用的時候,將參數展開,和剩余參數有區別,剩余參數是在函數聲明中使用 myFunctio...
摘要:這就是所謂的箭頭函數不綁定,而在我看來,回調函數就是箭頭函數最好的歸宿。 0x000 概述 箭頭函數有兩個作用: 更簡短的寫法 不綁定this 0x001 語法一表覽 ()=>{} ()=>{console.log(arrow);return null} ()=>hello (num1, num2)=>num1+num2 num=>++num ()=>({name:arrow})...
摘要:語法使用使用翻譯一下傳值檢測從翻譯的結果可以看出,默認參數只檢查兩種情況不傳參數傳入前參后用前面的參數可以作為后面參數的默認值,甚至可以對前面的參數做一些特別的操作,比如簡單的加減乘除默認參數調用函數賦值默認參數甚至可以調用函數,可以調用函 0x000 語法 function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defa...
摘要:概述也是一個新的數據結構,在中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個,但是比起真正的,這個還是有點弱了,初始化初始化一個有一個可選的參數,該參數必須是一個可迭代對象,可迭代對象包括和用戶定 0x000 概述 Map也是一個新的數據結構,在js中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個Map...
摘要:概述反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 0x000 概述 反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 反射提供了一系列的靜態函數,可以使用Reflect.function_name(...prams)調用,這一系列的方法和代理的處理器對象方法一致 0x001 apply 語法 Reflect.apply(targ...
閱讀 1714·2021-11-22 15:33
閱讀 2085·2021-10-08 10:04
閱讀 3543·2021-08-27 13:12
閱讀 3419·2019-08-30 13:06
閱讀 1467·2019-08-29 16:43
閱讀 1392·2019-08-29 16:40
閱讀 786·2019-08-29 16:15
閱讀 2746·2019-08-29 14:13