ES6學(xué)習(xí)-3.函數(shù)

1歧蕉、函數(shù)形參的默認(rèn)值

在ES5中函數(shù)定義了參數(shù),如果要設(shè)置默認(rèn)值珊佣,則需要在函數(shù)內(nèi)進(jìn)行判斷處理傻昙,例如:

要進(jìn)行判斷然后給出相應(yīng)的默認(rèn)值

而在ES6中,可以在函數(shù)形參中直接定義默認(rèn)值彩扔,例如:

這樣就不用在函數(shù)內(nèi)進(jìn)行判斷給與默認(rèn)值

2、默認(rèn)參數(shù)影響arguments

在ES5僻爽,非嚴(yán)格模式下虫碉,修改參數(shù)時(shí),arguments也會(huì)跟著變胸梆,例如:

在嚴(yán)格模式下敦捧,則不同,修改參數(shù)碰镜,arguments的值也不會(huì)變兢卵,例如:

所以在ES6下面和ES5的嚴(yán)格模式下,arguments的行為是一樣的绪颖,修改參數(shù)值秽荤,不會(huì)影響arguments的值。

3柠横、處理無(wú)命名參數(shù)

在函數(shù)的命名參數(shù)前添加三個(gè)點(diǎn)(...)就表明這是一個(gè)不定參數(shù)窃款,該參數(shù)為一個(gè)數(shù)組,包含著自它之后傳入的所有參數(shù)牍氛,通過(guò)這個(gè)數(shù)組名即可逐一訪問(wèn)里面的參數(shù)晨继。例如:

這個(gè)方法就是可以把object復(fù)制一份

需要注意的是:

(1)每個(gè)函數(shù)最多只能聲明一個(gè)不定參數(shù),而且一定要放在所有參數(shù)的末尾搬俊。

(2)不定參數(shù)不能用于對(duì)象字面量setter之中紊扬。

4、展開(kāi)運(yùn)算符

展開(kāi)運(yùn)算符其實(shí)跟不定參數(shù)基本相似唉擂。Math.max()方法返回兩個(gè)參數(shù)中大的一個(gè)餐屎,那么怎么返回一個(gè)數(shù)組中最大的呢。在ES6中玩祟,就可以用下面代碼:

5啤挎、箭頭函數(shù)

箭頭函數(shù)和傳統(tǒng)函數(shù)有以下幾點(diǎn)不同:

(1)沒(méi)有this、super、arguments和new.target綁定庆聘。

(2)不能通過(guò)new關(guān)鍵字調(diào)用胜臊。

(3)沒(méi)有原型

(4)不可以改變this的綁定。

(5)不支持arguments對(duì)象伙判。

(6)不支持重復(fù)的命名參數(shù)象对。

箭頭函數(shù)一般的寫法如下:

創(chuàng)建立即執(zhí)行函數(shù)表達(dá)式,例如:

6宴抚、尾調(diào)用優(yōu)化

尾調(diào)用指的是函數(shù)作為另一個(gè)函數(shù)的最后一條語(yǔ)句被調(diào)用勒魔。

在ES5中,尾調(diào)用函數(shù)會(huì)創(chuàng)建一個(gè)新的棧幀菇曲,推入調(diào)用棧冠绢,所以在循環(huán)調(diào)用的時(shí)候,相互不能釋放常潮,就可能導(dǎo)致調(diào)用棧越來(lái)越大弟胀。

在ES6中,縮減了嚴(yán)格模式下的尾調(diào)用棧的大小喊式,滿足以下條件孵户,尾調(diào)用不再創(chuàng)建新的棧幀,而是清除并重用當(dāng)前棧幀:

(1)尾調(diào)用不訪問(wèn)當(dāng)前棧幀的變量

(2)在函數(shù)內(nèi)部岔留,尾調(diào)用是最后一條語(yǔ)句

(3)尾調(diào)用的結(jié)果作為函數(shù)值返回

例如:

doSomething這個(gè)方法就會(huì)進(jìn)行優(yōu)化

下面的情況不會(huì)進(jìn)行優(yōu)化:

所以一般尾調(diào)用優(yōu)化用的最多的場(chǎng)景就是遞歸函數(shù)夏哭。遞歸的計(jì)算很大,那么優(yōu)化就會(huì)很大献联。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末竖配,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子里逆,更是在濱河造成了極大的恐慌械念,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件运悲,死亡現(xiàn)場(chǎng)離奇詭異龄减,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)班眯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門希停,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人署隘,你說(shuō)我怎么就攤上這事宠能。” “怎么了磁餐?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵违崇,是天一觀的道長(zhǎng)阿弃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)羞延,這世上最難降的妖魔是什么渣淳? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮伴箩,結(jié)果婚禮上入愧,老公的妹妹穿的比我還像新娘。我一直安慰自己嗤谚,他們只是感情好棺蛛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著巩步,像睡著了一般旁赊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椅野,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天终畅,我揣著相機(jī)與錄音,去河邊找鬼鳄橘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛芒炼,可吹牛的內(nèi)容都是我干的瘫怜。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼本刽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鲸湃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起子寓,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤暗挑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后斜友,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體炸裆,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年鲜屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烹看。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洛史,死狀恐怖惯殊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情也殖,我是刑警寧澤土思,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響己儒,放射性物質(zhì)發(fā)生泄漏崎岂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一址愿、第九天 我趴在偏房一處隱蔽的房頂上張望该镣。 院中可真熱鬧,春花似錦响谓、人聲如沸损合。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嫁审。三九已至,卻和暖如春赖晶,著一層夾襖步出監(jiān)牢的瞬間律适,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工遏插, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捂贿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓胳嘲,卻偏偏與公主長(zhǎng)得像厂僧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子了牛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 函數(shù)參數(shù)的默認(rèn)值 基本用法 在ES6之前颜屠,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法鹰祸。 上面代碼檢查函數(shù)l...
    呼呼哥閱讀 3,363評(píng)論 0 1
  • 第一章 塊級(jí)作用域綁定 let 和 const 都是不存在提升蛙婴,聲明的都是塊級(jí)標(biāo)識(shí)符都禁止重聲明 每個(gè)const聲...
    NowhereToRun閱讀 1,579評(píng)論 0 2
  • 1.函數(shù)參數(shù)的默認(rèn)值 (1).基本用法 在ES6之前粗井,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法街图。
    趙然228閱讀 686評(píng)論 0 0
  • 一背传、函數(shù)參數(shù)的默認(rèn)值 1.1、基本用法 ES6 允許為函數(shù)的參數(shù)設(shè)置默認(rèn)值台夺,直接寫在參數(shù)定義的后面 ES6 的寫法...
    了凡和纖風(fēng)閱讀 277評(píng)論 0 0
  • 函數(shù) 函數(shù)形參的默認(rèn)值 在ES5中模擬默認(rèn)參數(shù) 第一種方式:缺陷: 如果給num傳入值為0径玖, 那么因?yàn)楸灰暈閒al...
    Revontulet閱讀 417評(píng)論 0 0