暖初   2019-04-16 22:38 采纳率: 0%
浏览 1271

while(true) 条件为true时,为什么定时器不会执行

var a = true;
setTimeout(function() {
console.log(123);
a = false;
}, 3000);
while (a)
console.log(123);

  • 写回答

2条回答 默认 最新

  • 毕小宝 领域专家: 后端开发技术领域 2019-04-17 09:36
    关注

    那是因为js是单线程机制,只有主线程执行完成后才会执行定时器中的代码。
    而你是while(true)死循环,所以浏览器的主线程一直被占用着,无法分身执行定时器。这个死循环直接把浏览器给弄崩溃了。

    评论

报告相同问题?