javascript - Javascript 嵌套循环的额外输出

标签 javascript

在练习 JS 循环时,我编写了以下代码。

var bool = true;
while(bool) {
  for (var i = 3; i >= 0; i--)
  {
    console.log(i);  
    bool = i;
  }
}
我预期的输出是: 3 2 1 0 (每行 1 位数字)

我遇到的输出是: 3 2 1 0 0 (每行 1 位数字)

我的问题是 - 代码或环境组件如何产生额外的“0”?

感谢您的时间和帮助。

观察结果在 Chrome 中生成(F12 -> 控制台选项卡) screen shoot from chrome

还有,关于代码学院的实践设置。 不知怎的,我无法产生/或观察“运行代码片段”的任何结果。

更新:

通过切换

console.log(i);

bool =我;

我得到了 3 2 1 0。

这将证实 Pointy 的答案 - 没有表达式,只有函数调用 - 再次感谢!

最佳答案

最后一个0只是控制台机制,告诉您最后一个表达式语句计算的值。如果你改变它:

var bool = true;
while(bool) {
  for (var i = 3; i >= 0; i--)
  {
    console.log(i);  
    bool = i;
  }
}
"hello world";

您将看到 hello world 而不是最后一个 0

关于javascript - Javascript 嵌套循环的额外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33179626/

相关文章:

javascript - 如何使用 JQuery/Javascript 检查选择框是否为空

javascript - 弹出框同时打开

php - 如何在MySQL中对json数据进行编码以供数据库存储?

javascript - 删除脚本标签

javascript - "next"和 "previous"按钮,带有 div 的附加内容

javascript - 我有 ascii 密码的编码功能,但需要有关如何解码它的帮助

javascript - 单击模式外部或按转义键时,在 Bootstrap 模式中重定向网页?

javascript - 将 _Layout.cshtml 中的所有脚本作为一个包加载?

javascript - 如何使用javascript实时移动范围类型输入的 slider 而不刷新页面?

javascript - angular.js 端到端测试和 $timeout 问题