js代码中分为同步和异步代码。
有二个原则:
第一是js执行机制是先同步后异步执行;
第二个是每执行玩一次宏任务就要清空一次微任务;
我理解js代码在运行开始,讲所有js代码放入宏任务,然后进入到所有js的执行队列,然后执行第一作用域下的同步代码,至于异步代码,分为我们的宏任务和微任务promise里面是同步,promise.then()是微任务,setTimeout是宏任务。第一次执行的是宏任务的同步代码,把宏任务存起来,微任务运行完毕之后执行,而后分解存起来的宏任务,而后分宏任务和微任务,而后进行一次宏任务,而后清空微任务,而后在宏任务,依次执行。