关于前端:js的运行机制

47次阅读

共计 383 个字符,预计需要花费 1 分钟才能阅读完成。

js 是单线程运行:

h5 提出 Web Worker 概念:用于在主线程上创立多线程(子线程)子线程齐全受主线程管制
子线程不得操作 DOM

js 的执行栈执行机制:

1. 判断 js 是属于同步工作还是异步工作
2. 同步工作进入 js 主线程优先执行,依照程序执行
3. 异步工作被挂起,执行结束后进入工作队列期待读取
4. 主线程执行结束后触发事件循环机制读取工作队列中的执行好的工作 

事件循环机制:

 宏工作:setTimeout,setInterval,ajax,DOM 事件
微工作:Promise,async/await
1. 次循环都会先执行宏工作,而后查找是否有可执行的微工作
2. 执行宏工作的微工作结束后执行下一个宏工作

为什么微工作比宏工作执行的早:

1.  宏工作:DOM 渲染后触发,如 setTimeOut
2.  微工作:DOM 渲染前触发,如 Promise
3.  宏工作是浏览器规定的;4.  微工作是 es6 语法规定的;

正文完
 0