如果在此节点9.5.0中运行的示例中fn3
替换为fn2
,则console.log(totalUpvotes)
将记录undefined
。 IIUC的结果应该是一样的(92)?
const posts = [{id: 1, upVotes: 2}, {id:2, upVotes: 89}, {id: 3, upVotes: 1}];
const fn2 = (totalUpvotes, currentPost) => totalUpvotes + currentPost.upVotes;
const fn3 = (totalUpvotes, currentPost) => {totalUpvotes + currentPost.upVotes}
const totalUpvotes = posts.reduce(fn2, 0);
console.log(totalUpvotes);
答案 0 :(得分:1)
当运行时看到省略花括号时,它会为您包含New York
语句。请参阅下面的示例,以及Arrow functions on MDN:
return
请注意采用表达式的表单与表达语句的形式的等效性。获取语句的表单将始终导致未定义的返回值,除非以适当的(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
// equivalent to: => { return expression; }
终止。
JavaScript没有“隐式语句块值”;除了对象文字之外,{}大括号总是引入非表达式的形式。
见这个例子:
这是针对不耐烦的人:
return