我们都知道setTimeout是一个延迟执行的函数

console.log(1);
setTimeout(function(){console.log(2);},1000);
console.log(3);

会得到1,3,2

但是

setTimeout(function(){console.log(1);}, 0);
console.log(2);

你知道这段代码会执行什么样的效果吗

正确答案是2,1

一开始我也很疑惑,

setTimeout(function(){console.log(1);}, 0);不是隔了0秒就执行嘛,就是立即执行的意思啊,那就是应该答案是1,2呀

但是答案不是这样的

听阮一峰大神的解释

setTimeout(fn,0)的含义是指定某个人物在主线程最早可得的空闲时间执行,也就是说,尽可能早的执行。它在任务队列的尾部添加一个事件,因此要等到同步人物和任务队列现有的事件都处理完,才会得到执行

更多专业前端知识,请上 【猿2048】www.mk2048.com

setTimeout(fn,0)相关推荐

  1. settimeout(fn(),0)

    settimeout(fn(),0) 总所周知,settimeout 函数是用来做延时的,如 settimeout(()=>{console.log('show content')},1000) ...

  2. 【 js 基础 】【 源码学习 】 setTimeout(fn, 0) 的作用

    在 zepto 源码中,$.fn 对象 有个 ready 函数,其中有这样一句 setTimeout(fn,0); 1 $.fn = { 2 ready: function(callback){ 3 ...

  3. JavaScript下的setTimeout(fn,0)的作用,涨知识了

    单线程的javascript 首先我们来看浏览器下的JavaScript: 浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,G ...

  4. JavaScript下的setTimeout(fn,0)意味着什么?

    近期在研究异步编程的我对于setTimeout之类的东西异常敏感.在SegmentFault上看到了一个问题<关于SetTimeout时间设为0时>:提问者读了一篇文章,原文解释setTi ...

  5. setTimeout延时0毫秒的作用

    经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用 1.实现javascript的异步: 正常情 ...

  6. setTimeout(function(){}, 0);

    1 for (var i = 0; i < 3; i++) { 2 setTimeout(function() { 3 console.log(i); 4 }, 0); 5 console.lo ...

  7. 为什么setTimeout(fn,0)有时有用?

    我最近遇到了一个令人讨厌的错误,该错误代码是通过JavaScript动态加载<select> . 动态加载的<select>具有预先选择的值. 在IE6中,我们已经有代码来修复 ...

  8. vue2.0读书笔记2-进阶

    一.深入响应式原理 二.过渡效果 三.过渡状态 四.Render函数 五.自定义指令 六.混合 七.插件 八.单文件组件 九.生产环境 十.路由 vue-router: http://router.v ...

  9. js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)...

    javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...

最新文章

  1. 简书非官方大数据(一)
  2. DeepBrain 李传丰:当语义技能商店应用达到百万量级的时候,语音交互时代才会真正成熟 | WARE 2017
  3. java转json jar包_java转换json需导入的jar包说明
  4. HDFS NameNode重启优化
  5. 走进英特尔中国研究院探索创新日:发布最新科研成果与创新策略
  6. Android开发之广播
  7. 清除用友所有单据锁定的SQL语句
  8. 邪恶力量第一至九季/全集Supernatural迅雷下载
  9. 暴风影音去广告补丁NSIS代码开放
  10. 计算机四级题库百度云,四级题库免费
  11. 英语期刊写作-通往国际学术舞台的阶梯第六章答案
  12. Borůvka algorithm
  13. proteus常用元件图示和名称介绍
  14. 华为云跨服务器传输文件,与云服务器传输文件
  15. Zookeeper——3、使用zkClient操作zookeeper
  16. 机器学习隐私保护-MPC通用编译器
  17. Linux管理账号详解
  18. 读米老师的《人际关系要全面》有感
  19. 使用cpolar发布群晖NAS上的网页(1)
  20. 墨刀素材学堂开学啦!你要的优质素材都在这里

热门文章

  1. 【MFC系列-第25、26天】绘图软件
  2. Java面向对象(19)--抽象类与抽象方法abstract
  3. windows server 驱动精灵_还在用Windows文件共享?我来教你一键摆脱Windows海量小文件使用和备份的噩梦...
  4. 问题 1047: [编程入门]报数问题
  5. [暑假集训Day4T3]曲线
  6. AliOS-Things Visual studio code helloworld 入门
  7. 【原创】jpgraph中文乱码问题的解决
  8. Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决...
  9. 这个夏天,感动我的歌,感动我的你
  10. 解释型语言和编译型语言的区别