引擎:解释并编译代码,使其能够直接在机器上运行
runtime:运行时,或者称之为运行环境。比如浏览器环境和node环境,不同的环境上会有提供不同的api以及接口
任务队列
js中任务队列有两类:宏任务队列和微任务队列。
宏任务队列(macrotask):全局script setTimeout, setInterval, ajax,setImmediate, I/O, UI rendering.
微任务(microtask):Promise, Object.observer, MutationObserver.
事件循环机制
1:主线程先取一个宏任务队列的任务执行
2:取一个微任务进行执行,执行完毕后,接着取微任务执行,直到微任务执行完毕
3:更新ui渲染
更新ui渲染比较耗时,所以是否进行ui渲染取决于浏览器。
当同步代码执行完毕以后,先检查微任务队列,把微任务队列迭代空,再取一个宏任务到主线程执行,宏任务执行完毕再检查微任务队列,接着再取宏任务队列,依次循环
注意:与node的执行顺序不同。
网友评论