js 是一个单线程的,同一时间只能执行一件事情
js 中分为同步任务和异步任务
异步任务 又分为 宏任务和微任务
执行顺序 同步任务 - 微任务 - 宏任务
先执行所有的同步任务,碰到异步任务放到任务队列里排队 同步任务执行完,开始执行所有的异步任务 先执行任务队列里所有的微任务,微任务里也有可能有同步和异步任务, 然后先执行微任务里的同步,再执行微任务 等所有的同步任务,微任务执行完成后,再去执行宏任务, 宏任务里也可能有同步和异步任务 这样就形成了一个事件循环
规则 :异步的任务队列里,同等条件下,一定先执行微任务
宏任务由浏览器发起的 微任务是由js发起的