1. 事件循环机制Event Loop
(1)事件进入主线程,判断是同步任务还是异步任务
(2)如果是同步任务:进入主线程,任务全部执行完毕
(3)读取任务队列中的任务
(2)如果是异步任务:进入到Event Table,其中包括宏任务和微任务
(3)注册回调函数到Event Queue
1、同步任务和异步任务分别进入不同的执行环境,同步任务进入主线程,异步任务进入 Event Table 并注册函数
2、当指定的事情完成后,Event Table 会将这个函数移入到 Event Queue 中
3、主线程内的任务执行完毕,就会去 Event Queue 中读取对应的函数,进入主线程执行
上述过程不断重复,形成 Event Loop
ps:同步任务比异步任务先执行
2. 宏任务和微任务
宏任务:setTimeout、setinterval、ui、I/O……
微任务:promise.then
同步任务:new Promise
异步任务:setTimeout