每隔一秒从0到n输出的几种方式
1. 递归 + setTimeout
let countdown = (value,delay)=>{
console.log(value)
return value < 5 ?
setTimeout(()=>{
countdown(value+1,delay)
},delay)
:value
}
countdown(0,1000)
2. 自执行函数 + setInterval
function countdown (n){
(function(i,n){
let interval = setInterval(() => {
console.log(i)
if(i<n){
i++
}else{
clearInterval(interval)
}
},1000)
})(i=0,n)
}
countdown(3)
3. 循环 + 自执行函数 + setTimeout
function countdown(n){
for(let i=0;i<=n;i++){
(function(i){
setTimeout(()=>{
console.log(i)
},i*1000)
})(i)
}
}
countdown(5)