gpt4 book ai didi

javascript - Console.log() 和 settimeout(fn, 0)

转载 作者:行者123 更新时间:2023-11-28 15:25:58 25 4
gpt4 key购买 nike

我对在 Chrome 控制台中运行的以下代码有一些疑问(我突出显示了每个循环之间的差异)。代码的目的是立即打印出偶数,然后按顺序打印出奇数(因为堆栈是清晰的,并且Chrome开始通过事件队列运行,据我了解)。

  1. 第一个循环为什么显示undefined ?为什么会有小undefined 的左侧?

  2. 对于第二个循环,为什么1打印在哪里?看来这是控制台正在做的事情,而不是我的代码。

  3. 对于第二个循环,为什么2打印出? for 循环的范围严格小于 2。

  4. 为什么第三个循环打印 undefined3 ?不同之处在于控制台实际上并没有打印 旁边的数字。符号?

  5. 对于最后一个循环,为什么没有 13打印?有点像打印 4 3次。

  6. 如何以这种方式使用 setTimeout 来实现我的代码的意图?

console.log and set timeout

如果您自己尝试该代码,它看起来就像 旁边的数字每次运行循环时都会递增。

最佳答案

For the first loop, why does it show undefined? Why is there the little on the left of undefined?

<-表示返回值。该代码不返回任何内容。

For the second loop, why does 1 print where it does? It looks like this is something the console is doing, not my code.

这里,代码确实返回了一些内容:1 。那就是setTimeout的ID .

For the second loop, why does 2 print out? The for loop is for strictly less than 2.

参见JavaScript closure inside loops – simple practical example -- 当您的代码运行时,i现在是 2。

Why does the third loop print undefined and 3? What's different that the console didn't actually print out a number next to the <· symbol?

undefined是循环返回的最后一个值—— console.log() 的值。 3已记录超时。

For the last loop, why didn't 1 and 3 print? Kind of seems like it printed 4 3 times.

How do you accomplish the intent of my code using setTimeout in this way?

参见JavaScript closure inside loops – simple practical example再次。

关于javascript - Console.log() 和 settimeout(fn, 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28951617/

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