在循环内定义变量

时间:2019-03-13 14:34:39

标签: javascript

为什么这不是真的,而VSCode给我一个错误:

req.body.scores.forEach(score => var scores += score);

但这是真的:

ali = () => {
    for (var i = 0; i < 100; i++) {
        var value = somearray[i];
    };
}

在两个内部都定义了var!

3 个答案:

答案 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不是语句是表达式