1.定时器的分类
定时器分为两类,延迟执行(setTimeout)、间歇执行(setInterval)
延迟执行:
延迟执行:setTimeout(函数,时间) : 时间单位ms 1s = 1000ms
setTimeout(函数,1000); 延迟一秒执行函数一次 只执行一次
使用场景:广告弹窗
setTimeout(close,3000);
function close(){
oDiv.style.display = "none";
}
间歇执行:
间歇执行:setInterval(函数,时间):
setInterval(函数,1000):隔一秒执行函数一次
使用场景:轮播图,倒计时
var oImg = document.getElementsByTagName("img")[0];
var n = 1;
setInterval(function(){
n++;
if(n == 12){n=1}
oImg.src = "img/a"+n+".jpg";
},50);
清除定时器:
停止定时器:
clearInterval(intervalId)
id:每一个定时器开启的时候,都会返回一个能唯一标识当前定时器的id,是一个数字
var n = 5;
var timer = setInterval(function(){
n--;
if(n <= 0){
n=0;
//停止定时器
clearInterval(timer); //停止下一次的执行
}
document.body.innerText = n;
},1000);
异步
同步:一步一步执行,如果上一步没有执行完,下一步就不能执行
异步:在做某个步骤的同时可以执行其他的代码
console.log("1");
setTimeout(function(){
console.log("a");
},0); //js中只要遇到定时器,就会放到最后执行,就算时间是0
console.log("2");
上面代码中,打印 1 2 a
面试题
for(var i = 0;i<10;i++){
setTimeout(function(){
console.log(i);//10个10
},1000);
}
console.log(i); //i=10