JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法。通常,在JavaScript中,可以通过两种方式创建函数:
函数语句。 函数表达式。可以如下所示创建函数语句:
function add(num1, num2) {var res = num1 + num2;return res;}var sum = add(7, 2);console.log(sum);也可以创建相同功能的函数表达式,如下所示:
var add = function (num1, num2) {var res = num1 + num2;return res;}var sum = add(7, 2);console.log(sum);ECMA 2015(或ECMA Script 6)引入了更短的语法来编写函数表达式,称为箭头函数。使用箭头函数,你可以将上面的函数表达式编写为:
var add = (num1, num2) => { return num1 + num2; };
正如你所看到的,使用箭头函数编写的函数表达式更短。
箭头函数的基本语法规则
首先,参数应该在小括号中传递。你可以创建有两个参数的箭头函数,如下所示:
ar add = (num1, num2) => { return num1 + num2; };
如果只要传递一个参数,那么括号是可选的,可以选择忽略。你可以创建一个参数的箭头函数,如下所示:
var add = num => { return num * 10; };
如果没有参数,那么你必须要有一个空括号——不能没有。所以对于没有参数的函数,箭头函数是这样写的:
var add = () => { console.log("hey foo") };
如果函数中有单个表达式或语句:
在主体中使用括号是可选的。 使用return语句是可选的。你可以重写add函数,而不使用函数体中的括号和return语句,如下所示:
var add = (num1, num2) => num1 + num2;
你也可以使用控制台语句编写不带参数的函数,如下所示:
var add = () => console.log("hey");
返回对象字面量
JavaScript箭头函数也可以返回对象字面量。唯一的要求是你需要把返回对象装入小括号中,如下所示:
var foo = (name, age) => ({name: name,age: age})var r = foo("my cat", 22);console.log(r);正如你所看到的那样,要返回的对象被放在了小括号内。如果你不这样做,那么JavaScript将无法区分对象字面量和函数体。
箭头函数支持rest参数
JavaScript箭头函数支持另一个ES6功能:rest参数。你可以在箭头函数中使用rest参数,如下面的代码所示:
var add = (num1, num2, ...restparam) => {console.log(restparam.length);var result = num1 + num2;return result;}var r = add(67, 8, 90, 23);console.log(r);在这个例子中,当你使用带有rest参数的箭头函数时,输出会是2和75,因为传递的额外参数的数量是2,num1和num2的总和是75。
新闻热点
疑难解答
图片精选