【发布时间】:2019-10-21 13:22:32
【问题描述】:
let timer = () => {
for(let i = 0; i < 5; i ++) {
setTimeout(() => {
console.log(i)
}, i * 1000)
}
}
timer();
上面的代码将以 1000 毫秒的间隔打印 0、1、2、3、4
如果我将let i = 0 更改为var i = 0,timer() 将在 1000 毫秒间隔内发出五次“5”。到目前为止一切顺利,我知道let 和var 之间的区别
但是现在我想以1000ms的间隔打印0、1、2、3、4,而不是使用 let关键字,那我该怎么办呢?
我想我可能需要使用关闭,但我不知道如何。
编辑:不使用 let 我的意思是使用 var 代替
【问题讨论】:
-
如果不是
let或var...您是否尝试使用const?我想我不确定不使用let的目标是什么。 -
@stealththeninja 可能是为了避免使用 ES6+
-
@stealththeninja 我的意思是使用
var -
Another way 使用递归且没有同时超时。
标签: javascript