- 箭頭函數(shù)的參數(shù)使用()包含,如果只有一個(gè)參數(shù)則可以省略(),
() => {...}
(a, b, c) => {...}
x => {...}
- 箭頭函數(shù)的代碼段使用{}包含,如果只有一條返回語句,則可以省略{return ...},如果返回值為對象,因?yàn)閷ο蟮膡}會(huì)被解析成代碼段,所以需要在對象外面包裹一層()
x => x
// 等價(jià)于
function(x) {
return x;
}
() => ({a:1, b:2})
(a, b) => {
let c = a + b;
return c;
}
3.箭頭函數(shù)支持解構(gòu)賦值和擴(kuò)展運(yùn)算
({a,b}) => a + b;
// 等價(jià)于
function(obj) {
returm obj.a + obj.b;
}
(...rest) => rest;
- 箭頭函數(shù)的this是靜態(tài)的,繼承自外層代碼塊的this,因?yàn)槠洳痪哂凶约旱膖his,所以不能使用apply、call、bind等方法改變this。
- 箭頭函數(shù)不能作為構(gòu)造函數(shù)使用,即不使用new命令。
- 箭頭函數(shù)不包含arguments對象,可以使用rest替代,也沒有super、new.target變量,分別指向外層函數(shù)的對應(yīng)變量。
- 箭頭函數(shù)不能作為Generator函數(shù),不可以使用yield命令。