JS的运行机制整理

1 js引擎是单线程执行js代码,同步任务在栈中按顺序执行,如果某一个同步任务没有执
行完毕,则后面的代码将会处于阻塞等待状态.

2 栈中若执行遇到了异步任务(如定时器、异步Ajax、回调事件),会将此异步任务通过浏览器对应的工作线程来处理。

3 工作线程中的所有异步任务均会按照设定的时间进行等待,时间一到或者达到触发条件则会被加入任务队列。如果是异步ajax,则等待其返回结果后在加入到任务队列

4 当栈中为空时,会通过事件循环来一个个获取任务队列中的任务放到栈中进行逐个运
行。即栈中的同步任务总是在读取 异步任务 之前执行

5 定时器设置的时间不一定按照设定的时间进行执行,这得取决于栈中同步任务耗费的
时间。因为栈中执行的同步任务如果耗费很长时间,则会影响到异步任务回调函数的

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章