美文网首页
定时器timer

定时器timer

作者: _无味 | 来源:发表于2018-07-28 18:35 被阅读39次

    JavaScript 提供定时执行代码的功能,叫做定时器。它们向任务队列添加定时任务。
    setTimeout( 函数 || 执行的代码 ,time)
    setTimeout只能运行一次,叫延时调用

    //第一种写法:
    setTimeout("console.log(1)",1000)
    //第二种写法:
    setTimeout(function(){console.log(1)},1000) 
    //第三种写法:
    function fn(){console.log(1)}
    setTimeout(fn,1000)
    

    setInterval() 间歇调用
    用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务
    每隔一段时间就执行一次,也就是无限次的定时执行。
    setInterval(function(){console.log(1)},1000)

    清除定时器
    clearTimeout() clearInterval()
    先存储一个变量里,再直接清除

    var timer1 = setTimeout(fn, 1000);
    var timer2 = setInterval(fn, 1000);
    clearTimeout(timer1);
    clearInterval(timer2);
    

    运行机制
    js读取到setTimeout和setInterval会将这两种函数放到任务队列。直到所有的同步任务执行完毕之后才会执行任务队列里的任务。所以,这两种方法的执行时间我们无法保证。

    setTimeout(function () {
        console.log(1);
                  }, 0);
        console.log(2);
    //控制台先显示2再显示1
    
    //递归函数:在函数内部调用函数本身
    setTimeout(function timer(){
        console.log(new Date());
        setTimeout(timer,500)
            },500)
    
    //浏览器会把所有的性能集中到所看的页面
            setInterval(function(){
                var d=new Date()
                console.log(d)
            },500)
    

    相关文章

      网友评论

          本文标题:定时器timer

          本文链接:https://www.haomeiwen.com/subject/hytamftx.html