gpt4 book ai didi

javascript - 为什么计数正确递增

转载 作者:搜寻专家 更新时间:2023-11-01 04:54:08 25 4
gpt4 key购买 nike

考虑这个简单的例子:

var count = 0;
for (var i = 0; i < 4; i++ ) {
setTimeout(function() {
console.log(i, count++);
}, i * 200);
}

输出如下

4 0
4 1
4 2
4 3

我猜 i 总是解析为 4,因为 setTimeout 回调关闭了变量 I 但我不明白为什么 count?

var count = 0;
for (var i = 0; i < 4; i++ ) {
setTimeout(function() {
console.log(i, count++);
}, i * 2000 );
}

最佳答案

变量 i 由您的 for 循环递增,并以值 4 结束 before any超时处理程序运行。另一方面,变量 count 仅在超时处理程序内部递增。当第一个超时处理程序触发时,count 仍将是 0

关于javascript - 为什么计数正确递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27803425/

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