1、函數(shù)參數(shù)的默認(rèn)值
ES5中不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能通過以下的變通方式:
從上面的代碼可以看出存在一個(gè)問題,當(dāng)傳入的參數(shù)為0或者false時(shí),會(huì)直接取到后面的值,而不是傳入的這個(gè)參數(shù)值。
那怎么解決呢?對于上圖的代碼,可以通過判斷是否傳入了num參數(shù),沒有就用默認(rèn)值:
這種做法還是很麻煩的,而ES6則直接在參數(shù)定義里面設(shè)置函數(shù)參數(shù)的默認(rèn)值,而且不用擔(dān)心傳入?yún)?shù)是0或者false會(huì)出錯(cuò)了:
2、箭頭函數(shù)
箭頭函數(shù)用 => 符號來定義。
箭頭函數(shù)相當(dāng)于匿名函數(shù),所以采用函數(shù)表達(dá)式的寫法。
左邊是傳入函數(shù)的參數(shù),右邊是函數(shù)中執(zhí)行的語句。
上面是完整的寫法,左邊小括號,右邊大括號,而下面的情況可以簡寫:
(1)當(dāng)要執(zhí)行的代碼塊只有一條return語句時(shí),可省略大括號和return關(guān)鍵字:
箭頭函數(shù)在回調(diào)函數(shù)中是很簡潔的,像這樣:
需要注意的是, 箭頭函數(shù)沒有自己的this、arguments、super、new.target,它們分別指向外層函數(shù)的相應(yīng)變量。
以前在ES5中使用this有點(diǎn)麻煩,這種問題很常見:
但是現(xiàn)在有了箭頭函數(shù),不再需要使用that = this或 _this = this 這種代碼啦,因?yàn)榧^函數(shù)中的this直接就是外層函數(shù)中的this,代碼更簡單了:
以上所述是小編給大家介紹的A深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
|
新聞熱點(diǎn)
疑難解答