1. javascript 是单线程的

同步和异步: 立即执行的任务队列就是同步任务,异步任务有函数,定时器,http请求,promise等等。

事件循环:同步任务进入主线程,立即执行,执行之后异步任务进入主线程,这样循环

宏观和微观任务:

先执行微观任务( Micro Task),再执行宏观任务(Macro Task )

Micro Task:promise、process.nextTick(Node.js 环境)

Macro Task:setTimeout、setTimeInterval、script整体、UI交互、I/O、setImmediate(Node.js 环境) 

 <script type="text/javascript">
    console.log('开始')
    new Promise(resolve => {
        setTimeout(() => {
            console.log('t1')
        })
        console.log('p1')
        resolve()
    }).then(() => {
        console.log('p2')
    })
    setTimeout(() => {
        console.log('t2')
    })
    console.log('结束')
  </script>

结果:

 

 posted on 2021-02-02 10:28  Yseraaa  阅读(462)  评论(0编辑  收藏  举报