为什么这不是真的,而VSCode给我一个错误:
req.body.scores.forEach(score => var scores += score);
但这是真的:
ali = () => {
for (var i = 0; i < 100; i++) {
var value = somearray[i];
};
}
在两个内部都定义了var!
答案 0 :(得分:1)
var scores
不是apply(ast.literal_eval)。
它是expression,如果没有statement,则不允许在arrow functions内部使用。
即使您使用block语句,在回调之外也不知道scores
。
此外,该变量还需要一个初始数字/字符串值,因为您想为其添加另一个值。
答案 1 :(得分:0)
您不能同时使用var
和+=
运算符。
使用{}
添加一个语句块,如果未创建该值,则将其初始化。
[1, 2, 3].forEach((score) => {
if(typeof scores === "undefined") scores = 0;
scores += score;
console.log(scores);
} );
答案 2 :(得分:0)
因为不能遵循return
的声明。在箭头函数中,任何带有()
或不带有()
的东西都是箭头函数的return
的值。
根据{{3}}
返回[[expression]];
要返回其值的表达式。如果省略,则返回undefined
var x = 0
是一个语句,但x = 0
不是语句是表达式