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

資訊專(zhuān)欄INFORMATION COLUMN

es6基礎(chǔ)0x003:默認(rèn)參數(shù)

james / 2972人閱讀

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

0x000 語(yǔ)法
function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { 
    statements 
}
0x001 使用
function sum(a=0, b=0){
    return a+b
}

sum() // 0
sum(1) // 1
sum(1, 2) // 3

使用babel翻譯一下

function sum() {
    var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

    return a + b;
}
0x002 傳值檢測(cè)

babel翻譯的結(jié)果可以看出,默認(rèn)參數(shù)只檢查兩種情況

不傳參數(shù)

傳入undefined

function sum(a=0){
    return typeof a
}
sum() // "number"
sum(undefined)// "number"

sum(1) // "number"
sum("1") // "string"
sum(null) // "object"
sum(false)// "boolean"
0x003 前參后用

前面的參數(shù)可以作為后面參數(shù)的默認(rèn)值,甚至可以對(duì)前面的參數(shù)做一些特別的操作,比如簡(jiǎn)單的加減乘除

function sum(a=1, b=a, c=a+b){
    return [a, b, c]
}
sum() // [1, 2, 3]
sum(2)  // [2, 2, 4]
sum(2,2) // [2, 2, 4]
sum(2,2,2) // [2, 2, 2]
0x004 默認(rèn)參數(shù)調(diào)用函數(shù)

賦值默認(rèn)參數(shù)甚至可以調(diào)用函數(shù),可以調(diào)用函數(shù),就已經(jīng)說(shuō)明無(wú)所不能了~

function sum(a=1, b=(()=>4)()){
    return [a, b]
}
sum() // [1, 4]
sum(2) // [2, 4]
sum(2,2) // [2, 2]

注意: 無(wú)法調(diào)用函數(shù)內(nèi)部聲明的函數(shù)作為默認(rèn)值

function sum(a=1, b=num2()){
    function num2(){
        return 4
    }
    return [a, b]
}
sum() // Uncaught ReferenceError: num2 is not defined
0x005 按序覆蓋

參數(shù)還是按調(diào)用的時(shí)候傳輸?shù)捻樞蛞灰桓采w的,不會(huì)因?yàn)樗心J(rèn)值就跳過(guò)該形參的賦值

function sum(a=1, b ){
    return [a, b]        
}
sum() // [1, undefined]
sum(2)// [2, undefined]
sum(1,2) //[1, 2]
0x006 解構(gòu)賦值默認(rèn)參數(shù)

結(jié)構(gòu)中也可以使用默認(rèn)參數(shù),雖然結(jié)構(gòu)還沒(méi)在這系列出現(xiàn)過(guò)

function sum([x, y] = [1, 2], {z: z} = {z: 3}) { 
  return [x, y, z]; 
}

sum() // [1, 2, 3]
sum([2,4],{z: 6}) // [2, 4, 6]

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

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

相關(guān)文章

  • es6基礎(chǔ)0x008:解構(gòu)賦值

    摘要:概述實(shí)不相瞞,解構(gòu)賦值非常叼,特別是和其他一起使用的時(shí)候,那如何簡(jiǎn)單的說(shuō)解構(gòu)賦值呢,打個(gè)比方解構(gòu)賦值就是一個(gè)硬幣拆分機(jī),將所有的一毛五毛一塊硬幣投入硬幣拆分機(jī),他就自動(dòng)將所有的硬幣分好了,拿出你要的就行了解構(gòu)數(shù)組可以從一個(gè)數(shù)組從取出你想要的 0x000 概述 實(shí)不相瞞,解構(gòu)賦值非常叼,特別是和其他es6一起使用的時(shí)候,那如何簡(jiǎn)單的說(shuō)解構(gòu)賦值呢,打個(gè)比方:解構(gòu)賦值就是一個(gè)硬幣拆分機(jī),將所...

    xiaoxiaozi 評(píng)論0 收藏0
  • es6基礎(chǔ)0x019:模塊化

    0x000 概述 模塊化是一個(gè)大型項(xiàng)目的必然趨勢(shì)。 0x001 命名導(dǎo)出 可以使用export關(guān)鍵字,導(dǎo)出你要導(dǎo)出的東西,可以導(dǎo)出常量、變量、函數(shù)、類(lèi), // export.js export var var0 = var0 // 直接導(dǎo)出 var 聲明 export let let0 = let0 // 直接導(dǎo)出 let 聲明 export const const0 = const // 直...

    khlbat 評(píng)論0 收藏0
  • es6基礎(chǔ)0x004:剩余參數(shù)

    摘要:概述剩余參數(shù)將沒(méi)有對(duì)應(yīng)形參的參數(shù)聚合成一個(gè)數(shù)組語(yǔ)法只聚合未對(duì)應(yīng)形參參數(shù)剩余參數(shù)只會(huì)將沒(méi)有對(duì)應(yīng)形參的參數(shù)聚合成一個(gè)數(shù)組而則是包含了所有的參數(shù)。剩余參數(shù)是數(shù)組剩余參數(shù)始終是一個(gè)數(shù)組,而不像是一個(gè)偽數(shù)組轉(zhuǎn)化成數(shù)組解構(gòu)剩余參數(shù)使用翻譯翻譯后 0x000 概述 剩余參數(shù)將沒(méi)有對(duì)應(yīng)形參的參數(shù)聚合成一個(gè)數(shù)組 0x001 語(yǔ)法 function(a, b, ...theArgs) { } 0x002 ...

    waltr 評(píng)論0 收藏0
  • es6基礎(chǔ)0x007:展開(kāi)

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

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

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

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

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

0條評(píng)論

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