for循环中,setTimeout打印的问题

2023-08-27 15:37:37发布
36
<script>
    for (var i = 0; i < 5; i++) {
        setTimeout(function () {
            console.log(i)
        }, 1000);
    }
    // 输出5个5

    for (let i = 0; i < 5; i++) {
        setTimeout(function () {
            console.log(i)
        }, 1000);
    }
    // 输出0,1,2,3,4

    for (var i = 0; i < 5; i++) {
        (function (i) {
            setTimeout(function () {
                console.log(i)
            }, 1000);
        })(i)
    }
    // 使用es5实现let
</script>