javascript 执行顺序
1.同步的任务没有优先级之分,异步的有,先执行微任务,再执行宏任务。
一、javascript是一门单线程语言
既然js是一门单线程语言,js任务也要一个一个顺序执行,如果一个任务耗时过长,其它任务也必须等着。问题来了,如果再浏览网页的时候加载的超清图片加载的很慢,那岂不是网页一直要卡到图片加载完?所以就出现了同步任务和异步任务。
二、同步和异步
当我们打开网站时,网页渲染的过程就是一大堆同步任务,但是在加载视频或者其它大型的资源时就是用的异步加载。
用图来说明:
文字概况:
1、同步和异步的任务进入不同的场所。
2、当指定的事情完成时,event Table 的函数任务就会进入Event Queue。
3、主线程内的任务执行完毕为空就会调用Event Queue里面的函数。
4、上述过程会不断循环执行,这就是事件循环。
我们不禁要问了,那怎么知道主线程执行栈为空啊?
JS引擎中存在monitoring process进程,它会持续不断的检查主线程执行栈是否为空,一旦为空,就会去Event Queue那里检查是否有等待被调用的函数。