我认为 setTimeout 中的所有函数都是在全局范围内执行的。然后我今天看到了这个:
for(let x = 0; x < items.length; x++){
setTimeout(function() {
console.log(x);
})
}
即使在全局范围/窗口范围内有 x 的值;此代码控制台从 0 到 9。我在这里缺少什么。这个函数不应该在全局范围内运行吗?
为什么使用 let 而不是 var 会改变以前的事实?