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

資訊專(zhuān)欄INFORMATION COLUMN

ES6之函數(shù)的擴(kuò)展(一)

PrototypeZ / 1399人閱讀

摘要:主要講解參數(shù)默認(rèn)值參數(shù)默認(rèn)值位置函數(shù)的屬性參數(shù)作用域參數(shù)默認(rèn)值上面的代碼完全等價(jià)于而中常用的默認(rèn)值賦值方式此時(shí)會(huì)進(jìn)行隱式轉(zhuǎn)換的情況都會(huì)被賦值為不過(guò)如果需求就是如此那還是用此種方式書(shū)寫(xiě)

主要講解:

1. 參數(shù)默認(rèn)值
2. 參數(shù)默認(rèn)值位置
3. 函數(shù)的length屬性
4. "參數(shù)"作用域

1.參數(shù)默認(rèn)值
function log(x,y="babe"){
    console.log(x,y);
}
  
log(1,"")
//1 ""

log(1,[])
//1 []

log(1,0)
//1 0

log(1,false)
//1 false

log(1,null)
//1 null
-----------------------------
log(1)
//1 "babe"

log(1,undefined)
//1 "babe"

上面的代碼完全等價(jià)于:

function log(x,y){
    if(y === undefined){
        y = "babe";
    }
    console.log(x,y);
}

而es5中常用的默認(rèn)值賦值方式

function log(x,y){
    y = y || "babe"; 
    // 此時(shí)y會(huì)進(jìn)行隱式轉(zhuǎn)換 0/""/[]/false 的情況都會(huì)被賦值為"babe",不過(guò)如果需求就是如此,那還是用此種方式書(shū)寫(xiě)
    console.log(x,y);
}

**可以發(fā)現(xiàn)一個(gè)問(wèn)題ES6之后很多值比較都是完全等于undefined的情況,
不像es5,""/[]/0 隱式轉(zhuǎn)換為 false , null == undefined //true
----一些美麗的瑕疵都被遮掉了,以后代碼就顯得一覽無(wú)遺了

注意:es6中進(jìn)行過(guò)內(nèi)部包裝轉(zhuǎn)換的代碼參數(shù)定義是采用let,故同一層級(jí)的作用域內(nèi)不要出現(xiàn)多次聲明,會(huì)報(bào)錯(cuò)

用途:解構(gòu)賦值 關(guān)鍵就是看變量個(gè)數(shù) ,{...} 括起來(lái)的其實(shí)是一個(gè)參數(shù),在后面進(jìn)行解構(gòu)了而已

function log({user,pwd="123456"}={}){
    console.log(`user: ${user},password: ${pwd}`);
}
log4()
//user: undefined,password: 123456

log4({user:"babe"})
//user: babe,password: 123456

阮老師書(shū)中說(shuō)的練習(xí)可以這么理解:

function m1({x = 0, y = 0} = {}) {
  return [x, y];
}

function m2({x, y} = { x: 0, y: 0 }) {
  return [x, y];
}
//m1中不僅對(duì)函數(shù)參數(shù)給了默認(rèn)值{},而且對(duì)待解構(gòu)的x,y分別賦予了默認(rèn)值0
//m2中僅僅對(duì)函數(shù)參數(shù)給了默認(rèn)值{x: 0, y: 0 } ,那這就僅在函數(shù)調(diào)用時(shí)未傳參或者傳undefined進(jìn)去的時(shí)候,使用了默認(rèn)值
2.參數(shù)默認(rèn)值位置

通常寫(xiě)法是置于函數(shù)參數(shù)的最后,可以放中間,這樣一來(lái)意義就不大了,還是要手動(dòng)傳進(jìn)來(lái)(想使用默認(rèn)值就得傳undefined)

function log(user="babe",pwd){
    console.log(`user: ${user},password: ${pwd}`);
}
log(undefined,123)
//user: babe,password: 123
//可以發(fā)現(xiàn)這種寫(xiě)法就毫無(wú)意義了,方法擴(kuò)展性為0。當(dāng)然也不會(huì)有人這樣寫(xiě)代碼了
3.函數(shù)的length屬性

指代函數(shù)語(yǔ)氣傳入的參數(shù)個(gè)數(shù) -- 不包括指定了默認(rèn)值的參數(shù)(由于正常寫(xiě)法默認(rèn)參數(shù)置于最后,length屬性也僅遍歷到默認(rèn)參前一個(gè)為止)

function log(user="babe",pwd){
    console.log(`user: ${user},password: ${pwd}`);
}
log.length //0

function log(pwd,user="babe"){
    console.log(`user: ${user},password: ${pwd}`);
}
log.length //1
4."參數(shù)"作用域

es5中函數(shù)參數(shù)的作用域與函數(shù)體作用域處于同一層級(jí),es6中設(shè)置了默認(rèn)值之后,會(huì)另外創(chuàng)建一層作用域,位于函數(shù)體上面,參數(shù)作用域中不存在的變量會(huì)往上一層找尋,直至找到window下

如果bug請(qǐng)指正,Thanks?(?ω?)?!

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/107821.html

相關(guān)文章

  • ES6入門(mén)對(duì)象擴(kuò)展

    摘要:循環(huán)遍歷對(duì)象自身的和繼承的可枚舉屬性不含屬性。返回一個(gè)數(shù)組,包含對(duì)象自身的所有屬性的鍵名。目前,只有對(duì)象方法的簡(jiǎn)寫(xiě)法可以讓引擎確認(rèn),定義的是對(duì)象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 屬性的簡(jiǎn)潔表示法 在ES6中 允許直接寫(xiě)入變量和函數(shù),作為對(duì)象的屬性和方法,使得代碼的書(shū)寫(xiě)更為簡(jiǎn)潔。...

    RiverLi 評(píng)論0 收藏0
  • ES6入門(mén)對(duì)象擴(kuò)展

    摘要:屬性的簡(jiǎn)潔表示法在中允許直接寫(xiě)入變量和函數(shù),作為對(duì)象的屬性和方法,使得代碼的書(shū)寫(xiě)更為簡(jiǎn)潔。循環(huán)遍歷對(duì)象自身的和繼承的可枚舉屬性不含屬性。返回一個(gè)數(shù)組,包含對(duì)象自身的所有屬性的鍵名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 屬性的簡(jiǎn)潔表示法 在ES6中 允許直接寫(xiě)入變量...

    AWang 評(píng)論0 收藏0
  • ES6入門(mén)函數(shù)擴(kuò)展

    摘要:如果所有函數(shù)都是尾調(diào)用,那么完全可以做到每次執(zhí)行時(shí),調(diào)用幀只有一項(xiàng),這將大大節(jié)省內(nèi)存。等同于等同于注意,只有不再用到外層函數(shù)的內(nèi)部變量,內(nèi)層函數(shù)的調(diào)用幀才會(huì)取代外層函數(shù)的調(diào)用幀,否則就無(wú)法進(jìn)行尾調(diào)用優(yōu)化。 showImg(https://segmentfault.com/img/bVbrTHp?w=1080&h=1920); 1. 函數(shù)參數(shù)的默認(rèn)值 1.1 用法 在ES6之前是不能為...

    dackel 評(píng)論0 收藏0
  • ES6入門(mén)函數(shù)擴(kuò)展

    摘要:如果所有函數(shù)都是尾調(diào)用,那么完全可以做到每次執(zhí)行時(shí),調(diào)用幀只有一項(xiàng),這將大大節(jié)省內(nèi)存。等同于等同于注意,只有不再用到外層函數(shù)的內(nèi)部變量,內(nèi)層函數(shù)的調(diào)用幀才會(huì)取代外層函數(shù)的調(diào)用幀,否則就無(wú)法進(jìn)行尾調(diào)用優(yōu)化。 showImg(https://segmentfault.com/img/bVbrTHp?w=1080&h=1920); 1. 函數(shù)參數(shù)的默認(rèn)值 1.1 用法 在ES6之前是不能為...

    graf 評(píng)論0 收藏0
  • ES6學(xué)習(xí)手稿基本類(lèi)型擴(kuò)展

    摘要:它是一個(gè)通用標(biāo)準(zhǔn),奠定了的基本語(yǔ)法。年月發(fā)布了的第一個(gè)版本,正式名稱(chēng)就是標(biāo)準(zhǔn)簡(jiǎn)稱(chēng)。結(jié)語(yǔ)的基本擴(kuò)展還有一些沒(méi)有在這里詳細(xì)介紹。 前言 ES6標(biāo)準(zhǔn)以及頒布兩年了,但是,好像還沒(méi)有完全走進(jìn)我們的日常開(kāi)發(fā)。這篇文章從ES6的基本類(lèi)型擴(kuò)展入手,逐步展開(kāi)對(duì)ES6的介紹。 ECMAScript和JavaScript JavaScript是由Netscape創(chuàng)造的,該公司1996年11月將JavaSc...

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

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

0條評(píng)論

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