setInterval和setTimeout详解

注意两种函数的返回值参数this对象指向

返回值是一个ID,根据此ID号可以用来取消调用
参数是一个函数(或字符串)和一个数值时间
this对象指向window,非严格模式下

  1. 使用setInterval函数来设置每隔一段时间执行一个函数
    基本思想: 调用函数,当达到条件时清除ID

    (function(){
        var num=0;
        var interId;
        function func(){
            num++;
            console.log("["+num+"]"+"  I'am a lovely girl!");
    
            if (num>=10) {
                clearInterval(interId);
                console.log("It's enough!");
            }
        }
        interId = window.setInterval(func,2000);
    })();
    
  2. 使用setTimeout函数来设置每隔一段时间执行一个函数;
    基本思想,首先调用,每次超时继续调用;

    (function(){
        var num = 0;
        var max  =10;
        function func(){
            num++;
            console.log("["+num+"]"+"  I'am a lovely girl!");
            if (num<max) {
                window.setTimeout(func,1000);
            }
        }
        window.setTimeout(func,1000);
    })();
    

一般认为,使用超时调用来模拟间歇调用是一种最佳模式,在开发环境下,很少使用间歇调用,原因是后一个间歇调用可能会在前一个间歇调用结束之前启动。