谈谈js的运行机制(js单线程及js事件循环机制)
作者:互联网
** 谈谈js的运行机制(js单线程及js事件循环机制)**
答:js是单线程的,需要前一个任务结束,才能去执行下一个任务,这样js执行时间过长,就会导致页面渲染卡顿现象。在H5新标准中提出可以创建多个进程,这样就出现了同步任务和异步任务。
** 同步任务和异步任务(微任务和宏任务)的执行机制**
答 macro-task(宏任务):setTimeout,setInterval setImmediate (Node独有) ajax 包括整体代码script(也可以理解为同步任务)
micro-task(微任务):Promise,process.nextTick(node) MutationObserver
执行过程:
1.先执行所有同步任务,碰到异步任务放到任务队列中
2.同步任务执行完毕,开始执行当前所有的异步任务
3.先执行任务队列里面所有的微任务
4.然后执行一个宏任务
5.然后再执行所有的微任务
6.再执行一个宏任务,再执行所有的微任务·······依次类推到执行结束。
3-6的这个循环称为事件循环Event Loop
参考文献: https://blog.csdn.net/m0_51658494/article/details/124060711
https://www.csdn.net/tags/OtDaEgxsNzA1MDgtYmxvZwO0O0OO0O0O.html
https://segmentfault.com/a/1190000016848192
标签:异步,同步,单线程,js,任务,运行机制,执行 来源: https://www.cnblogs.com/zw100655/p/16251177.html