这两个函数作为箭头函数的语法是什么?
What would be the syntax on these two functions as an arrow function?
无法弄清楚这些箭头函数的语法。我是新手...
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;
});
var even = num => num % 2 === 0;
var plusThree = numbers.map(element => element + 3);
function (num) {
return num % 2 === 0;
};
会变成
(num) => num & 2 === 0
和
numbers.map(function(element) {
return element + 3;
});
会变成
numbers.map((element) => element + 3)
最通用的方法是,给定这种形式的匿名函数
function(arg1,arg2,...) { code }
对应的箭头函数是这种形式
(arg1, arg2,...) => { code }
有一种特殊情况,其中 code
只不过是 return 语句后跟一个表达式,即当函数代码中除了 return 语句。在那种情况下,你会得到更好的东西。
function (arg1,arg2,...) { return expression; }
变成
(arg1,arg2,...) => expression
因此,除了已经发布的内容之外,您始终可以执行类似的操作(例如,如果您希望箭头函数有副作用)
numbers.filter(num => { console.log(num); return num % 2 == 0})
编辑:
正如评论中指出的那样,仅当您有多个参数时,参数列表周围的 ()
才是必需的。所以以下也有效
arg1 => { code }
arg1 => expression
无法弄清楚这些箭头函数的语法。我是新手...
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;
});
var even = num => num % 2 === 0;
var plusThree = numbers.map(element => element + 3);
function (num) {
return num % 2 === 0;
};
会变成
(num) => num & 2 === 0
和
numbers.map(function(element) {
return element + 3;
});
会变成
numbers.map((element) => element + 3)
最通用的方法是,给定这种形式的匿名函数
function(arg1,arg2,...) { code }
对应的箭头函数是这种形式
(arg1, arg2,...) => { code }
有一种特殊情况,其中 code
只不过是 return 语句后跟一个表达式,即当函数代码中除了 return 语句。在那种情况下,你会得到更好的东西。
function (arg1,arg2,...) { return expression; }
变成
(arg1,arg2,...) => expression
因此,除了已经发布的内容之外,您始终可以执行类似的操作(例如,如果您希望箭头函数有副作用)
numbers.filter(num => { console.log(num); return num % 2 == 0})
编辑:
正如评论中指出的那样,仅当您有多个参数时,参数列表周围的 ()
才是必需的。所以以下也有效
arg1 => { code }
arg1 => expression