javascript for 循环进入无限循环

标签 javascript

我使用 for 循环在 javascript 中制作了一个简单的计时器,但是在单击按钮调用函数 test() 时,整个页面卡住了,所以我假设我在某个地方有一个无限循环 这是我的代码:

<html>
<head>
<script>
  function test() {
    var HowLong = 5;
    for (var i=0;i<HowLong;i--) {
      document.write(HowLong[i] + "<br>");
    }
  } 
</script>
</head>
<body>
  <input type="button" onclick="test()" value="Start Timer">
</body>
</html>

最佳答案

是的,for循环中有无限循环问题:

for (var i=0;i<HowLong;i--)

尝试使用 i++ 而不是 i--

for (var i=0;i<HowLong;i++)

还有一点 HowLong 不是数组,因此您不能使用 HowLong[i],只需使用:

document.write(i+ "<br>");

正如@jfriend00在评论中提到的,当您在加载文档后使用document.write()时,它将清除当前文档并开始一个新文档。在您的情况下,您的按钮Start Timer将被清除。如果你想避免它,你可以使用 div 并为其添加值。

<html>
  <head>
  <script>
    function test() {
      var HowLong = 5;
      for(var i=0;i<HowLong;i++) {
        document.getElementById("myDiv").innerHTML += i + "<br>";
      }
    } 
  </script>
  </head>
  <body>
    <input type="button" onclick="test()" value="Start Timer">
    <div id="myDiv"></div>
  </body>
</html>

关于javascript for 循环进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422619/

相关文章:

javascript - 当只调用一次 emit 时,自定义事件被多次触发

javascript - jquery replace 不替换所有空格 -

javascript - 如何停止Requiredfieldvalidator在取消点击时工作

javascript - JQuery:脚本可以在控制台中运行,但不能在附加文件中运行

javascript - 如何使用 Ajax 将对象数组发送到 PHP 并更新 MySQL 服务器

javascript - 三个 .indexOf 不匹配 - 返回另一个结果

javascript - 正则表达式替换撇号

javascript - ReactJS 如何评估 JSX 中的任何 JavaScript 表达式?

javascript - 如何在 d3.js 中生成小倍数

javascript - 这里变量声明有什么区别?