当我使用下面的 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/