JS是单线程语言,深入理解JS里的Event Loop
划重点!!!
JS的执行机制(一):
1.首先判断JS是同步还是异步,同步就进入主进程,异步就进入event table
2.异步任务在event table中注册函数,当满足触发条件后,被推入event queue
3.同步任务进入主线程后一直执行,直到主线程空闲时,才会去event queue中查看是否有可执行的异步任务,如果有就推入主进程中
JS的执行机制(二)
1.执行一个宏任务,过程中如果遇到微任务,就将其放到微任务的【事件队列】里
2.当前宏任务执行完成后,会查看微任务的【事件队列】,并将里面全部的微任务依次执行完
任务划分方式:
1.macro-task(宏任务):script,setTimeout,setInterval
2.micro-task(微任务):Promise,process.nextTick
我们从一道小题目出发
for (var i=