在这之前先要了解一下
for循环中let 和var的区别
var 是函数级作用域或者全局作用域,let是块级作用域 看一个例子
function foo() {
for (var index = 0; index < array.length; index++) {
//..循环中的逻辑代码
}
console.log(index);//=>5
}
foo()
console.log(index)//Uncaught ReferenceError: index is not defined
foo函数下的index输出5,全局下的index不存在
现在我们把var 换为let
function foo() {
for (let index = 0; index < array.length; index++) {
//..循环中的逻辑代码
}
console.log(index)//Uncaught ReferenceError: index is not defined
}
foo()
报错了,index不在foo函数作用域下,当然肯定也不会再全局下
因为var和let的这个区别(当然var和let的区别不止于此)所以导致了下面的这个问题
关于var
const array = [1, 2, 3, 4, 5]
function foo() {
for (var index = 0; index < array.length; index++) {
setTimeout(() => {