Javascript 延迟for循环继续返回相同的值

Javascript 延迟for循环继续返回相同的值,javascript,for-loop,Javascript,For Loop,无论我做什么,我的延迟for循环始终返回“-1” for (var i = 5; i > 0; i--) { setTimeout(function() { console.log(i) }, i * 1000) } (我将变量改为5)最简单的方法是在for中调用一个函数,并让该函数处理setTimeout for(变量i=5;i>0;i--){ fnSetTimeout(i); } 函数fnSetTimeout(i){ setTimeout(

无论我做什么,我的延迟for循环始终返回“-1”

for (var i = 5; i > 0; i--) {
    setTimeout(function() {
        console.log(i)
    }, i * 1000)
}

(我将变量改为5)

最简单的方法是在
for
中调用一个函数,并让该函数处理
setTimeout

for(变量i=5;i>0;i--){
fnSetTimeout(i);
}     
函数fnSetTimeout(i){
setTimeout(函数(){console.log(i);},1000*i);

}
更简单的方法是用
let
而不是
var
声明
i
。。。