while循环在执行过程中无法通过setTimeout延时改变其中的变量值吗?

想通过setTimeout延时改变变量的值,进而改变while循环输出的值,但是无法改变:

const tests = {
  str: "abc",
};

setTimeout(() => {
  tests.str = "fff";
}, 4 * 1000);

while (true) {
  console.log(tests.str);
}

这是什么原因?

阅读 2.3k
1 个回答

是的,没有办法改变,因为js是单线程的,while无限循环了,会阻断定时器的执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题