ES6 中的箭頭函數(shù)
定義
定義一個箭頭函數(shù)很簡單煤禽,基本語法是:
([param] [, param]) => {
? statements
}
param => expression
param 是參數(shù)铐达,根據(jù)參數(shù)個數(shù)不同岖赋,分這幾種情況:
() => { ... } // 零個參數(shù)用 () 表示;
x => { ... } // 一個參數(shù)可以省略 ()瓮孙;
(x, y) => { ... } // 多參數(shù)不能省略 ()唐断;
當然选脊,和普通函數(shù)一樣,箭頭函數(shù)也可以使用 ES6 新增的「默認參數(shù)」和「剩余參數(shù)」( Firefox15+ 開始支持):
var func1 = (x = 1, y = 2) => x + y;
func1(); // 得到 3
var func2 = (x, ...args) => { console.log(args) };
func2(1,2,3); // 輸出 [2, 3]
箭頭函數(shù)允許多行語句或者單行表達式作為函數(shù)體脸甘。多行語句要用 {} 括起來恳啥;單行表達式不需要 {},并且會作為函數(shù)返回值:
x => { return x * x }; // 函數(shù)返回 x * x
x => x * x; // 同上一行
x => return x * x; // SyntaxError 報錯丹诀,不能省略 {}
x => { x * x }; // 合法钝的,沒有定義返回值,返回 undefined
箭頭函數(shù)也是 JS 函數(shù)的一種铆遭,所以之前的 instanceof 和 typeof 依然可用:
var func1 = () => {};
func1 instanceof Function; // true
var func2 = () => {};
typeof func2; // "function"