箭頭函數(shù)相對于匿名函數(shù)锋爪,并且簡化了函數(shù)的定義丙曙。箭頭函數(shù)有兩種格式,一種只包含一個(gè)表達(dá)式其骄,{ ... }和return都省略掉了亏镰。還有一種可以包含多條語句,這時(shí)候就不能省略{ ... }和return:
例子一(包含一個(gè)表達(dá)式)
//箭頭函數(shù)
x=>x*x
//上面的箭頭函數(shù)相當(dāng)于
function(x){
return x*x;
}
例子二(包含多條語句)
//箭頭函數(shù)
x => {
if (x > 0) {
return x * x;
}
else {
return - x * x;
}
}
//上面的箭頭函數(shù)相當(dāng)于
function(x){
if (x > 0) {
return x * x;
}
else {
return - x * x;
}
}
例子三(如果參數(shù)不是一個(gè)拯爽,就需要用括號()括起來:)
// 兩個(gè)參數(shù):
(x, y) => x * x + y * y
// 無參數(shù):
() => 3.14
// 可變參數(shù):
(x, y, ...rest) => {
var i, sum = x + y;
for (i=0; i<rest.length; i++) {
sum += rest[i];
}
return sum;
}
例子四(如果要返回一個(gè)對象索抓,就要注意,如果是單表達(dá)式毯炮,這么寫的話會報(bào)錯(cuò))
x=>{foo:x}
//因?yàn)楹秃瘮?shù)體的{ ... }有語法沖突逼肯,所以要改為:
x=>({foo:x})