for循环中的最终表达式不会增加全局变量

时间:2015-12-29 07:45:08

标签: for-loop

我无法让这段代码工作,它应该运行两次但是当我检查控制台时,它会无限运行。为什么a没有增加?

var a=1;
(function man() {
  console.log('foo');
  for (;a<3;a++){
     console.log(a);
     man();}
})();

如果我重写代码,它运行得很好。

var a=1;
 (function man() {
   console.log('foo');
     for (;a<3;){
     a++;
     console.log(a);
     man();}
})();

1 个答案:

答案 0 :(得分:0)

在第一个例子中,第三部分('a'增量部分)仅在完成由于递归调用而永远不会发生的迭代之后才执行。第二个例子,它在迭代开始时增加