一次性定时器 setTimeout

 for(var i=0;i<6;i++){
        setTimeout("console.log(i)",0);
            }   //6,6,6

知识点

   

          定义任务函数:function task(){.......}

          启动定时器:   timer=setTimeout(task,wait);//任务函数,等待时间

          停止定时器: 停止等待   clearTimeout(timer);

    原理:  1. 启动定时器时:  js引擎将定时器的任务函数和间隔时间,添加到定时器中等待被调用,同时为该任务生成唯一的序号。

      2. 定时器会遍历每个任务,按照时间间隔,自动调用到时间的函数。

      3. 定时器并没有直接调用函数,而是将函数调用加入一个回调队列(callback queue)。

      4. 回调对列中的函数,必须等到主程序(ECS)中执行完了才能执行。所以要等for循环结束,i=6后才开始执行

      setInterval/setTimeout的第一个参数,可以是一个字符串格式的js语句。

posted @ 2016-06-22 00:13  cold_coffee  阅读(1259)  评论(0编辑  收藏  举报