- 關於箭頭參數:
- 如果箭頭函數沒有參數,直接寫一個空括號即可;
- 如果箭頭函數的參數只有一個,需要用括號包裹參數;
- 如果箭頭函數的參數有多個,將參數依次用逗號 (,) 分隔,包裹在括號中即可;
- 關於箭頭函數體:
- 箭頭函數沒有普通函數
function
關鍵字; - 如果箭頭函數的函數體只有一句代碼,就是簡單返回某個變量或者返回一個簡單的 JS 表達式,可省去函數體花括號{};
- 如果箭頭函數的函數體只有一句代碼返回一個對象的話,需用圓括號來包裹對象;
- 如果箭頭函數的函數體只有一條語句並且不需要返回值(最常見是調用一個函數),可在這條語句前面加一個 void 關鍵字;
- 箭頭函數沒有普通函數
- 區別在於:
- 箭頭函數本質:
- 語法更加簡潔,清晰;
- 箭頭函數就是匿名函數;
- 箭頭函數不會創建自己的 this,會從自己作用域鏈外層繼承 this;因為箭頭函數中 this 的指向在被定義時已確定,永遠改變不了的;
- 普通函數本質:
- new 的本質生成新對象,將該對象的_proto_(原型鏈) 指向函數的 prototype (原型),再執行 call 方法,最後將新對象賦值給已聲明變量;
- 在其作用域鏈中創建 this 執行上下文,且優先級 new > bind > obj > window;
- 可聲明幾個函數,比如函數表達式,函數聲明,匿名函數。
- 箭頭函數本質: