ES6新特性(函數默認參數,箭頭函數)

一、函數參數的默認值函數

  ES5中不能直接爲函數的參數指定默認值,只能經過如下的變通方式:this

   

  從上面的代碼能夠看出存在一個問題,當傳入的參數爲0或者false時,會直接取到後面的值,而不是傳入的這個參數值。blog

  那怎麼解決呢?對於上圖的代碼,能夠經過判斷是否傳入了num參數,沒有就用默認值:排序

   

  這種作法仍是很麻煩的,而ES6則直接在參數定義裏面設置函數參數的默認值,並且不用擔憂傳入參數是0或者false會出錯了:get

   

 

二、箭頭函數回調函數

  箭頭函數用 => 符號來定義。匿名函數

  箭頭函數至關於匿名函數,因此採用函數表達式的寫法。變量

  左邊是傳入函數的參數,右邊是函數中執行的語句。im

   

  至關於d3

   

  上面是完整的寫法,左邊小括號,右邊大括號,而下面的狀況能夠簡寫:

  (1)當要執行的代碼塊只有一條return語句時,可省略大括號和return關鍵字:

     

 

  (2)當傳入的參數只有一個時,能夠省略小括號:

     

    至關於

     

 

  (3)當不須要參數時,使用空的圓括號:

     

    至關於

     

 

  箭頭函數在回調函數中是很簡潔的,像這樣:

    

  在排序中:

    

 

  須要注意的是, 箭頭函數沒有本身的this、arguments、super、new.target,它們分別指向外層函數的相應變量。

之前在ES5中使用this有點麻煩,這種問題很常見:

   

 

  這就須要在嵌套函數外層使用that = this,而後內層使用that,就是下面這樣子:

   

 

  可是如今有了箭頭函數,再也不須要使用that = this或 _this = this 這種代碼啦,由於箭頭函數中的this直接就是外層函數中的this,代碼更簡單了:

   

 

Oh,wonderful !!! 

相關文章
相關標籤/搜索