gpt4 book ai didi

javascript - 浏览器控制台输出在带有 settimeout 的 for 循环中有一个神秘的数字?

转载 作者:行者123 更新时间:2023-12-02 15:35:12 25 4
gpt4 key购买 nike

在控制台上运行此命令会立即显示一些详细信息,然后是实际的控制台日志。这些详细信息在不同的浏览器中意味着什么?

    for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 0);
}

enter image description here

enter image description here

enter image description here

最佳答案

您将在调用堆栈末尾安排 10 个 console.log 语句(当函数在 for 循环完成后返回时)。由于此时 i10,因此它会打印 10 的次数与您调用 setTimeout 的次数相同处理程序。

编辑

澄清问题后,您看到的是 value of the last expression evaluated 。在本例中,它是您上次设置的超时值。 window.setTimeout 返回一个可取消且对于选项卡 session 唯一的 ID。在这种情况下,浏览器似乎正在增加它们已经存储的计数,因此您将获得 10 的增量,因为您在循环中调用 setTimeout 10 次。

关于javascript - 浏览器控制台输出在带有 settimeout 的 for 循环中有一个神秘的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003229/

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