提问人:Gagan baghel 提问时间:11/20/2022 更新时间:11/20/2022 访问量:96
循环中的 setTimeout 不打印变量的值?
settimeout inside a loop doesnot print the value of variable?
问:
function x(){
for(var i=1;i<=5;i++){
setTimeout(function (i){
console.log(i)
},i*1000)
}
}
x();
这是我的代码,任何人都可以帮我解释为什么我的代码打印 “”“”undefined“”“ 代替我
我一直在寻找如何在循环中使用 setTimeout 函数,但关于这东西的文档似乎有限,我想在 for 循环中制作一个 setTimeout。如果你能帮我解决这个问题,那就太好了
答:
1赞
flyingfox
11/20/2022
#1
您可以按照 how-can-i-pass-a-parameter-to-a-settimeout-callback 将 paramerter 传递给setTimeout()
还需要使用而不是缩小范围let i=1;i<=5;i++
var i=1;i<=5;i++
i
function x(){
for(let i=1;i<=5;i++){
setTimeout(function (){
console.log(i)
},i*1000)
}
}
x();
评论
function (i)
i
i
i
undefined
var
let