除了函数声明和函数表达式,JavaScript 还有一种非常简洁的定义函数的语法。这类函数叫做_箭头函数_。
在这篇介绍里,我们重点关注箭头函数的书写语法。箭头函数在运作方式上还有一些差异,比如 this 绑定,这些会在别的概念里介绍。
下面比较一下函数声明和箭头函数。
function addUpTwoNumbers(num1, num2) {
return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
return num1 + num2;
};
从上面的例子可以看到,箭头函数的语法:
function
addUpTwoNumbers声明为const
=>
如果函数体里只有一条返回语句,像上面那个例子一样,那么可以省略{}和return关键字。
const addUpTwoNumbers = (num1, num2) => { return num1 + num2 };
// can be shortened to
const addUpTwoNumbers = (num1, num2) => num1 + num2;
// braces {} and return removed
有一种特殊情况:箭头函数只返回一个对象。这时如果想省略返回语句,就必须用括号把对象括起来。
// explicit return of object
const addUpTwoNumbers = (num1, num2) => {
return { num1, num2 };
};
// implicit return of object
const addUpTwoNumbers = (num1, num2) => ({ num1, num2 });
形参外面要不要加括号,取决于形参的个数。
// one parameter does not need parenthesis
const square = num => num * num;
// two or more parameters need to be wrapped in parenthesis
const addUpTwoNumbers = (num1, num2) => num1 + num2;