-
所有的任务分为两种,一种同步任务,一种是异步任务
-
同步任务指的是,在主线程上排队执行任务,只有前一个任务执行完毕后,才执行后一个任务
-
执行栈
-
-
异步任务指的是不先进入主线程,而是进入任务队列的任务,只有等主线程任务执行完毕后,任务队列开始通知主线程,请求执行任务,然后任务才会进入主线程执行
-
前提:所有代码在执行时,都要消耗执行时间,只有异步代码会消耗等待时间
-
同步执行方式:同步代码执行时,必须按照顺序一步接一步执行
-
注意事项:同步代码优先于异步代码,并且只有同步代码遵循自上而下的规则
-
异步执行方式 :当遇到需要消耗等待时间代码时(异步代码),继续执行后面代码
-
异步代码的分类:和消耗等待时间有关
-
1.定时器的回调函数
-
2.事件体
-
3.发请求和响应
-
-
异步任务分为微任务和宏任务
-
宏任务包括:script(整块代码),stitimeout、setIntval、I\O、UI交互事件、se'tImmediate(node环境)
-
微任务包括:new promise().then(回调)、MutationObserver(html5新特新)、Object.observe(已废弃)、process.nextTick(node环境)
-