JS引擎的执行机制

1.js是单线程语言

2.JS的执行机制是Event Loop。

一。单线程。异步执行。

JS 单线程的异步执行是通过事件循环(Event Loop)。Event Loop执行顺序:

1.首先判断JS同步还是异步,同步进主进程,异步进event table.

2.异步任务在event table中注册函数,当满足触发条件后,被推入event queue

3.同步任务进入主线程后一直执行,直到主线程空闲时,才会去event queue中查看是否有可执行的异步任务,如果有就把她拉进主进程。

按照同步异步划分不是最准确的,准确的划分方式是这样的:

宏任务:script,setTimeout,setInterval 

微任务:promise, process, nectTick

这样就产生了一个新的执行顺序,如下:

1.执行一个宏任务,过程中如果遇到微任务,就将其放到微任务的“事件队列”里

2.当前宏任务执行完成后,会查看微任务的“事件队列”,并将里面的 全部微任务依次执行完。

3.重复上面两个步骤。

猜你喜欢

转载自blog.csdn.net/ferrysoul/article/details/82353566