gpt4 book ai didi

javascript - 为什么while循环中的setTimeout是按顺序递增的?

转载 作者:行者123 更新时间:2023-11-29 15:11:35 26 4
gpt4 key购买 nike

面试时我有一个问题。我只是不明白为什么会打印 5 6 7 8 9...

let i = 0;

while (i < 5) {
setTimeout(() => {
console.log(i++);
}, 0);
i++;
}

最佳答案

  • 您的代码以 i = 0 开头。
  • 当它进入 while 循环时,它会递增到 1, 2, 3, 4 并在到达 5 时停止.
  • setTimeout 函数是异步的,因此即使延迟为 0,它也会在当前线程完成后调用(while 循环)。
  • 由于 iwhile 循环结束时处于 5setTimeout 函数将从在那里,输出它的值并在每个后续 console.log()
  • 上递增它

关于javascript - 为什么while循环中的setTimeout是按顺序递增的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53962409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com