javascript - `setInterval` 明显的无限循环

标签 javascript setinterval

当我使用下面的 JavaScript 打开 HTML 时,启动计时器 会记录在控制台中,但随后我的鼠标图标会旋转。

window.onload = function() {
    console.log("starting timer");
    var n = 0;
    var id = setInterval(function() { console.log("hello"); n++ }, 100);
    while(true) {
        if( n > 5 ) {
              clearInterval(id);
              break;
        }
    }
    console.log("finished timer");
}

我在这里创建某种类型的无限循环吗?

最佳答案

JavaScript/DOM 在设计上是单线程的。

当 JS 旋转你的循环时:

while(true) {
      ...
}

没有其他 JS 代码被执行,包括您在 setInterval() 中提供的回调,因此 n 始终为零。

因此,是的,那里有无限循环。

关于javascript - `setInterval` 明显的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810781/

相关文章:

javascript - DropZone.js 判断何时上传成功

javascript - ReactJS : this. setState 不是一个函数?

javascript - 重复函数本身,无需根据其完成设置间隔

javascript - 如何保护页面免受高科技 CRSF 的影响

javascript - 我正在尝试制作一个简单的程序,每次用户单击按钮时都会增加一个数字

javascript: array.push 第一次工作,后续调用错误为 "array.push is not a function"

javascript - setInterval 与 chrome 和 firefox 不同

javascript - Uncaught ReferenceError : stopme is not defined (anonymous function)

javascript - 处理多个 setinterval javascript

javascript - Setinterval 动画有时暂停