js基础之js的运行机制

2019-02-19  本文已影响0人  wency_8ba7

js单线程的概念:同一个时间内只能干一件事情

任务队列:有同步任务和异步任务,同步任务执行完才去执行异步任务。setTimeout异步任务,异步任务要挂起

Event Loop(事件循环):浏览器的引擎遇到settimeout识别是异步,不会放到运行栈里,浏览器把这个异步任务保留,浏览器time模块时间到,放到异步任务队列,同步任务结束后,执行异步任务,放到运行站执行,如此循环。

任务栈的异步任务放入时间:

什么时候去异步队列取异步任务:

开启异步任务

1:setTImeout,setIntreval

2:DOM事件

3:ES6的promise

for (var i=0;i<4;i++) {

  setTimeout(function () {

      console.log(i)

  },0)

}

结果:输出4个4

上一篇下一篇

猜你喜欢

热点阅读