这是个js闭包相关的问题
for (let i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
}, 1000 * i)
}
for (let i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
}, 1000 * i)
}
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
setTimeout(fn, timer)
是一个定时器,即注册一个函数fn
,timer
(并不一定完全一样)后执行。对于此题,相当于注册了5个定时器,分别是 0s, 1s, 2s, 3s, 4s后执行相应的
fn
-->>function() {console.log(i)}
, 所以效果是每隔一秒打印一次。