博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
setTimeout(fn,0)的秘密
阅读量:5737 次
发布时间:2019-06-18

本文共 386 字,大约阅读时间需要 1 分钟。

这个奇怪的代码干什么的?

开始看到这段代码,一脸懵逼。为啥直接执行。

原理探究

js是单线程的,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。 setTimeout(fn,0)就是加到任务队列里面

demo

setTimeout(function(){    console.log(1);}, 0);console.log(2);console.log(3);复制代码

这样,这段代码输出结果为2 , 3 ,1。就得到了解释,因为setTimeOut设置为0,会在队列最后添加一个事件,要等待其他任务事件处理完成才会处理,所以 1 才会最后打印;

总结

让人懵逼的代码都是每理解原理的~~~

转载于:https://juejin.im/post/5c7a8a39e51d453f0a16c541

你可能感兴趣的文章
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
严苛模式(StrictMode)
查看>>
错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”的解决方法(转)
查看>>
我的工具:文本转音频文件
查看>>
Jenkins(二)
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
面试中会遇到的正则题
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
React.js 集成 Kotlin Spring Boot 开发 Web 应用实例详解
查看>>
《图解HTTP》学习笔记(四):返回结果的HTTP状态码
查看>>
翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
查看>>
Spring 学习笔记(一)Spring核心容器
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>