实现定时器隔一段时间就打印的解决办法:
原本得定时器会在2秒过后直接打印出所有结果:
for(var i=10;i>0;i--){
setTimeout(function(){
console.log(i);
},2000*i)
}
实现挨个打印得方法如下 :
(1)添加立即执行函数
for(var i=10;i>0;i--){
(function(i){
setTimeout(function(){
console.log(i);
},2000*i)
})(i)
}
(2)将var声明得变量变为let 声明(es6中let声明的变量只在它离它最近的代码块内有效)
for(let i=10;i>0;i--){
setTimeout(function(){
console.log(i);
},1000*i)
}
定时器实现倒计时的案例:
setInterval(myRol,1000);
function myRol(){
let futTime=new Date("2019-11-11");
let nowTime=new Date;
let ms=futTime.getTime()-nowTime.getTime();
let day=parseInt(ms/1000/60/60/24);
let hour=parseInt(ms/1000/60/60%24);
let min=parseInt(ms/1000/60%60);
let sec=parseInt(ms/1000%60);
document.getElementById("roes").innerHTML=`距离双十一还有${day}天${hour}小时${min}分${sec}秒`;
}
myRol();