编辑代码


function test0 (){
    for (var i = 0; i < 5; i++) {
        setTimeout(function(){
            console.log(new Date(),"test 0 " + i)
        }, 0)
    }
    console.log(new Date,i)
}
test0();

// 改成 let
function test1 (){
    for (let i = 0; i < 5; i++) {
        setTimeout(function(){
            console.log(new Date(),"test 1 " + i)
        }, 0)
    }
   // console.log(new Date,i) //i is not defined
}
test1();

//立即执行函数
function test2 (){
    for (var i = 0; i < 5; i++) {
        
        (function(){
            // setTimeout(function(i){
                console.log(new Date(),"test 2 "+i)
            // }, 0)
        })(i)
        
    }
   // console.log(new Date,i) //i is not defined
}
test2();