作为箭头函数,这两个函数的语法是什么?

时间:2017-12-04 03:16:30

标签: javascript arrow-functions

无法确定箭头函数的语法。我是新手......

var numbers = [1, 25, 6, 88, 47, 77, 333, 500];

var even = function (num) {
  return num % 2 === 0;
};
var evens = numbers.filter(even);


var plusThree = numbers.map(function(element) {
  return element + 3;
});

3 个答案:

答案 0 :(得分:2)

var even = num => num % 2 === 0;

var plusThree = numbers.map(element => element + 3);

答案 1 :(得分:2)

function (num) {
  return num % 2 === 0;
};

会变成

(num) => num & 2 === 0

并且

numbers.map(function(element) {
  return element + 3;
});

会变成

numbers.map((element) => element + 3)

答案 2 :(得分:1)

最常见的方法是,给定此表格的匿名功能

function(arg1,arg2,...) { code }

相应的箭头功能是这种形式

(arg1, arg2,...) => { code }

有一种特殊情况,code只不过是一个返回语句,后跟一个表达式,即当你在函数代码中没有任何语句而不是return语句时。在这种情况下,你会得到更好的东西。

function (arg1,arg2,...) { return expression; }

变为

(arg1,arg2,...) => expression

因此,除了已发布的内容之外,您可以随时执行此类操作(例如,如果您希望箭头功能具有副作用)

numbers.filter(num => { console.log(num); return num % 2 == 0})

编辑: 作为注释中的指针,只有当您有多个参数时,才需要参数列表周围的()。所以以下也有效

arg1 => { code }
arg1 => expression