在Javascript While循环重复在控制台上运行时从1到5计数的最后一个数字

Sar*_*rge 7 javascript for-loop while-loop

在控制台上运行以下代码时:

var counter=0; while(counter<5){ console.log(counter); counter++; }

console o\p:0 1 2 3 4 4

而对于以下代码工作正常,而不重复最后一个值:

for(var i=0; i<5; i++){ console.log(i); }

console o\p:0 1 2 3 4

现在,如果我在上面提到的while循环之后放置上面的循环,输出就完全正常了:

var counter=0; while(counter<5){ console.log(counter); counter++; } for(var i=0; i<5; i++){ console.log(i); }

console o\p:0 1 2 3 4 0 1 2 3 4

然而,如果我在for循环后放置while循环,则找到重复的最后一个数字.

for(var i=0; i<5; i++){ console.log(i); } var counter=0;while(counter<5){ console.log(counter); counter++; }

console o\p:0 1 2 3 4 0 1 2 3 4 4

请求all为while循环的这种意外行为提供原因.谢谢.

Nit*_*Nit 9

在控制台中执行操作时,始终输出最后执行的行的返回值.

这意味着只需写作

var counter = 0; ++counter;
Run Code Online (Sandbox Code Playgroud)

将登录1到控制台.

在循环中也是如此,最后一个的返回值counter++作为最后执行的表达式的值输出到控制台.

  • 在Chrome中(不确定其他浏览器),这由一个小灰色箭头表示. (4认同)
  • @Sarge它正在发生,请参阅我上面关于这个问题的评论.在这种情况下,"最后执行的行的返回值"是"未定义的",你在`for`循环版本之后看到它. (3认同)