方法一:
for (let i = 0; i < 10; i++) {
setTimeout(() => {
console.log(i);
}, 1000)
}
方法二:利用 setTimeout 函数的第三个参数,会作为回调函数的第一个参数传入
for (var i = 0; i < 10; i++) {
setTimeout(i => {
console.log(i);
}, 1000, i)
}
setTimeout的第三个参数详解:第一个参数是回调函数,第二个参数是延迟时间,第三个参数是作为回调函数的参数来使用的
官网链接:https://developer.mozilla.org/en-US/docs/Web/API/setTimeout
例如:
setTimeout(
function(a){
console.log(a)
},
2000,
'第三个参数'
)
执行这个代码你会发现在代码执行两秒后会在控制台打印出‘第三个参数’的字样
我们可以简单粗暴的理解为,a=‘第三个参数’
再比如:会在控制台输出6,也就是1*2*3的值
setTimeout(
function(a,b,c){
console.log(a*b*c)
},
2000,
1,2,3
)
如果第三个参数是一个函数:
setTimeout(
function(){
console.log('第一个参数')
},
2000,
setTimeout(
function(){
console.log('第三个参数')
}, 1000)
)
打印结果如下:
先执行第三个参数,然后再执行第一个函数。