延时函数 与 间隔函数

延时函数 setTimeout(function(){},ms);

    clearTimeout(d);
    var d = setTimeout(function(){},ms);
  • setTimeout(function(){},0);
    var a = 1;
    setTimeout(function(){
        console.log('before:' + a);
        a = 2;
        console.log('after:' + a);
    },0);//设置为0,相当于放在最后执行
    a = 100;
    console.log(a);

相当于:

    var a = 1;
    a = 100;
    console.log(a);
    setTimeout(function(){
            console.log('before:' + a);
            a = 2;
            console.log('after:' + a);
        },0);//以最快的方式执行
  • 需要注意的是:
    for(var i = 0;i < 10;i ++){
        setTimeout(function(){
            console.log(i);
        },1000);
    }
    // 结果为输出:10(因为1s内,循环早已完成)

间隔函数 setInterval(function(){},ms);

    clearInterval(d);
    var d = setInterval(function(){},ms);
  • 任务序列,当执行代码的时间大于间隔时间时
   setInterval(function(){
       ...//这行这些代码需要花1500ms
   },1000)

当出现这种情况时,会等待当前代码执行完,等待执行的代码会加入任务序列中,等当前代码执行完后,立即执行。

setTimeout 与 setInterval 区别

  • setTimeout
   setTimeout(function(){
       ...//这行这些代码需要花1s
   },1000)

总时间 = 1s + 1000ms

  • setInterval
   setInterval(function(){
       ...//这行这些代码需要花500ms
   },1000)

总时间 = 500ms + (1000 - 500)ms.

使用 setTimeout 模拟 setInterval

    setTimeout(function(){
        setTimeout(arguments.callee,10)
    },10);

但是,这实际上比 setInterval 时间更长一些

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,390评论 1赞 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,238评论 2赞 17
  • 什么是闭包? 有什么作用闭包:函数对象可以通过作用域链相互关联,函数体内部的变量可以保存在函数的作用域内。 上述代...
    coolheadedY阅读 853评论 0赞 0
  • 1.什么是闭包? 有什么作用? 闭包是指有权访问其他函数作用域中的变量的函数。 详细解释:就是在一个函数中,父函数...
    Sheldon_Yee阅读 1,220评论 2赞 2
  • 什么是闭包? 有什么作用 闭包是指一个函数可以调用其他函数的变量。最常见的闭包就是一个函数嵌套另一个函数; 闭包的...
    尹萨萨阅读 409评论 0赞 0

友情链接更多精彩内容