js是单线程运行:
h5提出Web Worker概念:用于在主线程上创立多线程(子线程)子线程齐全受主线程管制子线程不得操作DOM
js的执行栈执行机制:
1.判断js是属于同步工作还是异步工作2.同步工作进入js主线程优先执行,依照程序执行3.异步工作被挂起,执行结束后进入工作队列期待读取4.主线程执行结束后触发事件循环机制读取工作队列中的执行好的工作
事件循环机制:
宏工作:setTimeout,setInterval,ajax,DOM事件微工作:Promise,async/await1.次循环都会先执行宏工作,而后查找是否有可执行的微工作2.执行宏工作的微工作结束后执行下一个宏工作
为什么微工作比宏工作执行的早:
1. 宏工作:DOM渲染后触发,如setTimeOut2. 微工作:DOM渲染前触发,如Promise3. 宏工作是浏览器规定的;4. 微工作是es6语法规定的;