ES6之函數(shù)的擴展

? ? ?ES6上函數(shù)的擴展表現(xiàn)在不僅體現(xiàn)在參數(shù)和屬性變化還有具體函數(shù)表現(xiàn)形式的變化涩禀。

? ? ? 首先是ES6上函數(shù)參數(shù)上的變化,ES6上函數(shù)的參數(shù)可以設(shè)置默認值瞭空,當(dāng)調(diào)用的時候沒有設(shè)置對應(yīng)參數(shù)值(即沒有對應(yīng)參數(shù)) 杆兵,即開始調(diào)用默認參數(shù)值雁仲。參數(shù)變量都是默認聲明的,所以在表達式中再采用let或者const去聲明就會產(chǎn)生錯誤(var就不會了)琐脏;在已經(jīng)存在設(shè)置了默認值的參數(shù)的函數(shù)不能再存在同名函數(shù)(這會導(dǎo)致默認值的賦值是否會在兩個同名函數(shù)上生效攒砖,產(chǎn)生混亂);函數(shù)參數(shù)默認值是表達式的時候日裙,每次調(diào)用函數(shù)吹艇,參數(shù)的默認值都會重新根據(jù)表達式進行計算。ES6中函數(shù)參數(shù)和解構(gòu)賦值結(jié)合,可以根據(jù)參數(shù)是否存在默認值阅签、調(diào)用函數(shù)時傳入的參數(shù)是否存在是否為空是否為對應(yīng)對象掐暮,產(chǎn)生多種結(jié)果和錯誤蝎抽,可以自己試一哈政钟。函數(shù)參數(shù)設(shè)置默認值路克,在調(diào)用的時候,會產(chǎn)生參數(shù)自己的一個作用域和函數(shù)表達式一個作用域养交,參數(shù)自己的作用域變量是參數(shù)存在取參數(shù)精算,參數(shù)不存在直接取外層全局變量,注意不同的作用域和變量的作用范圍碎连。其次ES6支持一種rest參數(shù)灰羽,其實就是...values來表示多個參數(shù)(好low的感覺有木有),而且用這個東西做參數(shù),只能放到參數(shù)的最后一個鱼辙,不然就報錯(好矯情有木有)廉嚼。

? ? ?其次是函數(shù)的一些屬性,fun.length原來是可以用來表示fun的參數(shù)個數(shù)倒戏,但是為參數(shù)設(shè)置默認值之后length的表達就不準(zhǔn)確了怠噪,fun.length將用來指定沒有設(shè)置默認值的參數(shù)的個數(shù),而且rest參數(shù)的length為0杜跷,不是尾參數(shù)設(shè)置默認值的情況下該參數(shù)以后的參數(shù)個數(shù)都不會計入length中傍念。fun.name返回函數(shù)的名稱,在ES6上不管是匿名函數(shù)還是其他函數(shù)都可以把函數(shù)名給你顯示出來葛闷。

? 下面就是體現(xiàn)在數(shù)組憋槐,對象上的擴展,簡寫(估摸是都想偷個懶)淑趾,=> === function 阳仔,利用箭頭定義一個函數(shù),var s = function(x){return x} === var s = (x) => x; (x)=>{return 多于一條語句的表達式}扣泊,(x) =>(對象)驳概,但是簡寫也帶來了一些別的不同,簡寫的函數(shù)體內(nèi)this指向的是定義式所在的對象旷赖,而且不能當(dāng)作構(gòu)造函數(shù)(太草率),不能用arguments(函數(shù)體內(nèi)不存在)顺又,不能用作yield函數(shù)(這個函數(shù)還是比較特殊好吧);而且這個箭頭作用的函數(shù)還可以相互嵌套等孵,不過看著有點亂好吧稚照。綁定this對象 ::用來替代apply,call俯萌,bind果录,obj::fun,函數(shù)的this即是對象咐熙,::obj.fun,即是fun中的this指向obj弱恒。

? ? 最后就是一個類似閉包的東西,尾調(diào)用棋恼,即函數(shù)中最后一步是調(diào)用最后一個參數(shù)返弹,注意函數(shù)中return的步驟和作用锈玉,但是還跟閉包不一樣,閉包是函數(shù)返回函數(shù)义起,而尾調(diào)用是函數(shù)返回函數(shù)的調(diào)用拉背。函數(shù)結(jié)尾返回函數(shù)本身的調(diào)用叫做尾遞歸,注意包括尾遞歸優(yōu)化和尾調(diào)用優(yōu)化所在的嚴格模式下的arguments(參數(shù))默终,caller(函數(shù)本身)的失真問題==》報錯椅棺。還有就是ES6需要在多行參數(shù)后面跟,但是之前是不可以的(會報錯),和try{}catch{}只在不需要拋錯的地方使用齐蔽。

? ? ? ?這章寫的好無聊两疚,不扯了,下班回家含滴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鬼雀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛙吏,更是在濱河造成了極大的恐慌源哩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸦做,死亡現(xiàn)場離奇詭異励烦,居然都是意外死亡,警方通過查閱死者的電腦和手機泼诱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門坛掠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人治筒,你說我怎么就攤上這事屉栓。” “怎么了耸袜?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵友多,是天一觀的道長。 經(jīng)常有香客問我堤框,道長域滥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任蜈抓,我火速辦了婚禮启绰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沟使。我一直安慰自己委可,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布腊嗡。 她就那樣靜靜地躺著着倾,像睡著了一般拾酝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屈呕,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音棺亭,去河邊找鬼虎眨。 笑死,一個胖子當(dāng)著我的面吹牛镶摘,可吹牛的內(nèi)容都是我干的嗽桩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼凄敢,長吁一口氣:“原來是場噩夢啊……” “哼碌冶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涝缝,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扑庞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拒逮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罐氨,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年滩援,在試婚紗的時候發(fā)現(xiàn)自己被綠了栅隐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡玩徊,死狀恐怖租悄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恩袱,我是刑警寧澤泣棋,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站畔塔,受9級特大地震影響外傅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俩檬,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一萎胰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棚辽,春花似錦技竟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽熙尉。三九已至,卻和暖如春搓扯,著一層夾襖步出監(jiān)牢的瞬間检痰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工锨推, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铅歼,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓换可,卻偏偏與公主長得像椎椰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沾鳄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 函數(shù)參數(shù)的默認值 基本用法 在ES6之前慨飘,不能直接為函數(shù)的參數(shù)指定默認值,只能采用變通的方法译荞。 上面代碼檢查函數(shù)l...
    呼呼哥閱讀 3,384評論 0 1
  • 1.函數(shù)參數(shù)的默認值 (1).基本用法 在ES6之前瓤的,不能直接為函數(shù)的參數(shù)指定默認值,只能采用變通的方法吞歼。
    趙然228閱讀 690評論 0 0
  • 三堤瘤,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進,只要將碼點放入大括號浆熔,就能正確解讀該字符本辐。有了這...
    eastbaby閱讀 1,534評論 0 8
  • 一、小紅花榜——看到分享的榜樣 這個本期新增的亮點有非常好的示范作用医增。因為小組之間缺乏互通慎皱,我也沒有形成閱讀其他小...
    李琳艷閱讀 280評論 0 1
  • 與表姐聊天后的隨筆散記 小耳朵們,你們有沒有在自己得意滿滿的時候被別人當(dāng)頭一棒叶骨,說不上是教訓(xùn)茫多,只是在嘲笑你的不自量...
    你被寫在我的日記本里閱讀 1,058評論 0 0