我对for循环内setTimeout函数的行为有疑问。
情况1:
for (let i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
})
}
因为我使用过let,所以它在控制台中打印0、1、2、3、4。但是每次我运行此代码时,都会得到一些随机数,如下图所示。数字代表什么?
情况2:
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
})
}
当我使用var运行时,我得到的输出是图像中提到的5倍,为5倍,我还想知道它与使用let关键字有何不同?
这个问题与之前提出的问题几乎没有什么不同,我已经解决了这个问题,没有给我解决方案现在我所期望的吗?