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

console.log();
setTimeout(function(){console.log();},);
console.log();

会得到1,3,2

但是

setTimeout(function(){console.log();}, );
console.log();

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

正确答案是2,1

一开始我也很疑惑,

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

但是答案不是这样的

听阮一峰大神的解释

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

最新文章

  1. Uiautomator--断言的使用
  2. linux下添加mysql用户并授权
  3. (JavaScript实现)页面无操作倒计时退出
  4. matplotlib简介及安装
  5. Unity中的基础光照
  6. LeeCode
  7. android解析网络json数据(1)
  8. Neutron server的运行原理(未完待续)
  9. Go 初体验 - 并发与锁.1 - sync.Mutex 与 sync.RWMutex
  10. int 跟 Integer 的关系
  11. Ubuntu16.04密码正确 进不去桌面系统(已测试恢复正常)
  12. poj3666 线性dp
  13. DOM与document的区别
  14. 乘积尾零|2018年蓝桥杯B组题解析第三题-fishers
  15. awk把第1列相同的第2列按“;”拼起来,最后输出第1列和拼起来的结果
  16. (网页的缓存控制)HTML配置no-cache(备忘) “Cache-control”常见的取值
  17. Laravel输出JSON时设定输出字段的几种情况总结
  18. 全局匹配KMP算法
  19. yii2.0的gradview点击按钮通过get方式传参
  20. 1.appium介绍

热门文章

  1. 牛客网 提高组第8周 T2 推箱子 解题报告
  2. BZOJ1832 聚会
  3. mybatis中parameterType可以写的别名
  4. HDU4009:Transfer water(有向图的最小生成树)
  5. 不要在linux上启用net.ipv4.tcp_tw_recycle参数
  6. flush priviliege
  7. JAVA、android中常用的一些jar包的作用
  8. js处理时间的那些事
  9. [洛谷P2577] [ZJOI2005]午餐
  10. flask-login源码梳理