作为一个三年工作经验的前端小小白,今天在看JS引擎机制,然后延申到event loop,在延申到宏任务微任务,what?? 神马东西,没听过,怕不是个假的程序员小白白吧。
我看的文章链接
10分钟理解JS引擎的执行机制
javascript的宏任务和微任务
这一次,彻底弄懂 JavaScript 执行机制
讲的东西大概都差不多。
1.js为什么是单线程:我自己的理解就是,不能同时进行两个或多个相矛盾的操作,给浏览器造成困扰,链接第一篇讲的非常生动。
2.js执行机制是 Event Loop 事件循环
任务分为宏任务(macro task)和微任务(micro task),首先执行同步的宏任务,把微任务计入微任务的队列中,把异步任务计入到异步队列中。然后执行完同步的宏任务,执行微任务队列。执行之后,执行异步对列中的宏任务,微任务计入微任务队列。本次loop之后,执行微任务,循环执行。
macro task:setImmediate(仅支持IE和node.js)、MessageChannel(兼容问题!!no!!)、setTimeout(略有延迟,大概是4s左右),script代码片段…
micro task:Promise、MutationObserver、Object.observe,process.nextTick…
有问题欢迎指出~~~