关于前端:js的运行机制

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语法规定的;

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理