温故知新JavaScript(第六天、定时器)

249 阅读1分钟

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