js单线程,事件循环,微任务宏任务
js单线程:
js是单线程的语言,所谓“单线程”就是一根筋,对于拿到的程序,一行一行的执行,直到上面的执行为完成,只能做这一件事
## 事件循环:
Event Loop(事件循环)中,每一次循环称为 tick, 每一次tick的任务如下:
执行栈选择最先进入队列的宏任务(通常是script整体代码),如果有则执行
检查是否存在 Microtask,如果存在则不停的执行,直至清空 microtask 队列
更新render(每一次事件循环,浏览器都可能会去更新渲染)
重复以上步骤
微任务,宏任务
从上图我们可以看出:
1.将所有任务看成两个队列:执行队列与事件队列
2.执行队列是同步的,事件队列是异步的,宏任务放入事件列表,微任务放入执行队列之后事件队列之前
3.当执行完同步代码之后,就会执行位于执行列表之后的微任务,然后在执行事件列表种的宏任务
还没有评论,来说两句吧...