**1.js因为是单线程语言,为了避免阻塞设计出了事件循环机制
2.js任务分为同步任务和异步任务,同步任务会放到主线程中,而异步任务会放入任务队列中
3.异步任务分为宏任务和微任务,js会将宏任务放入宏任务队列中,微任务放入微任务队列中,第一轮先执行宏任务队列里面的任务,如果此时宏任务队列的其中一轮结束后,调用栈清空了,事件循环机制又发现微任务,并且会清空微任务队列,才会看一下需不需要渲染,此时将进入下一轮宏任务,如果最后微任务队列中没有微任务了,此时宏任务队列中还存在多个宏任务将会依次放入调用栈中进行执行**