srtTimeout j*1000

142 阅读1分钟
for (var i = 1; i <= 5; i++) {
    (function(j) {
        setTimeout(function timer() {
            console.log(j)
        }, j * 1000)
    })(i)
}

这里之所以j*1000,是因程序执行上是1s 2s 3s 。。。

这样页面上表现出来的效果才会是 每隔一秒输出。

如果只有

for (var i = 1; i <= 5; i++) {
    (function(j) {
        setTimeout(function timer() {
            console.log(j)
        }, 1000)
    })(i)
}

则会在1s后输出12345 全部的数字。

究其原因,还是for循环执行很快。