为什么要了解JS执行机制?
JS执行机制是js执行的底层原理,理解了底层原理对于开发方法效率会提高,调错都效率也会增加很多。在未来发展道路上,了解底层才能够在技术的道路上走得更远!下面来和总结一下js执行机制原理吧。我从浏览器常驻的线程逐一说起。
浏览器常驻的线程
- js引擎线程(js主线程)
js执行是单线程,也就是说同一时间内只能做一件事(同步),但是js中也包含一些异步的事情,比如我们下班介绍的一些。 - GUI线程(绘制用户界面与JS主线程是互斥)
这个线程大家听起来可能比较陌生,但是这是大家一直在开发中看到的东西。大家回忆一些button按钮,我们点击时按钮颜色的变化,这个线程就是由GUI线程决定的! - http网络请求线程(处理用户GET POST请求,等返回结果后将回调函数推入到任务队列当中)
比如ajax的请求就是异步,和js主线程也是互斥的! - 定时触发器线程(setTimeout,setInterval等待时间结束后把执行函数推入任务队列当中)
- 浏览器事件处理线程(将 click、mouse 等交互事件发生后将这些事件放入事件队列中)
以上的GUI线程,http网络请求和定时器,浏览器事件处理线程均是异步的和js主线程是互斥的。
JS执行机制
js是单线程,意思是js在执行代码的时候那么其他的任务就不能做。但是当有异步的任务时发生的步骤也是非常重要的。
JavaScript 是基于单线程运行的,同时又是可以异步执行的,