JS中用来存储 待执行回调函数的队列包含2个不同特定的列队
宏列队: 用来保存待执行的宏任务(回调),比如:定时器回调/DOM事件回调/ajax回调
微列队:用来保存待执行的微任务(回调),比如: promise 的回调/MutationObserver的回调
JS 执行时会区别这2个队列
JS引擎首先必须先执行所有的初始化同步任务代码
每次准备取出第一个宏任务执行前,都要将所有的微任务一个一个取出来执行