您能解释一下如何逐步执行此JavaScript代码吗?

时间:2020-07-27 08:44:15

标签: javascript for-loop

显然是这里的初学者。

第一个选项:

var myArray = [2, 4, 6, 8, 10];

for (a = 0; a < myArray.length; a++) {
  var output = 0;
  output += myArray[a];
}
console.log(output); // Output is 10 in this case.

第二个选项:

var myArray = [2, 4, 6, 8, 10];

var output = 0;

for (a = 0; a < myArray.length; a++) {
  output += myArray[a];
}
console.log(output); // Output is 30 in this case.

所以,我的问题是-为什么在函数内部“ var output = 0”时输出为10,而在函数外部则输出为30?

2 个答案:

答案 0 :(得分:0)

第一种方法将output设置为0,然后加2,然后再次将其设置为0 ,然后添加4,然后将其再次设置为0 ,等等。

第二种方法将其设置为0,然后添加2,然后添加4,依此类推。

答案 1 :(得分:0)

第一个代码

    var myArray = [2, 4, 6, 8, 10];

    for (a = 0; a < myArray.length; a++) {
      var output = 0;
      output += myArray[a];
    }
    console.log(output); // Output is 10 in this case.
    

由于使用的变量范围不正确,上述代码语法不正确,在某些情况下可能会出错。

在这种情况下,它可以工作并且Output为10,因为在每个循环时间内,由于在每个循环中都放置了此命令,其值重置为0

    var output = 0;
    

结果,当您打印它时,它将得到最终结果10

第二个代码放30个很清楚,我认为没有必要进一步解释