js事件队列

什么是js事件队列?
队列:通俗讲就是排队
事件队列:就是多个事件在排队
那么js中事件队列就是在js执行过程中,有一个以上的事件需要执行

setTime(function () {
console.log(1);
},0);
for (var i = 0; i < 100000; i++){
console.log(2)
}

上述代码是前端开发中经常会遇到的
代码中有两个函数方法,也就js事件
js在执行过程中,通常都是按照代码先后顺序去执行,也称之为同步
但是,往往有的时候,需要改变js事件的执行顺序
当js执行第一个事件时,虽然setTime设置的时间是0
但是js并不会等待,而是将setTime事件暂时存放到事件队列中,继续按照顺序执行后续的代码
而setTime中的事件怎么办呢?
难道不执行了吗?不,会执行,只不过要等待js空闲的时候
那么js什么时候空闲呢?
当js执行完后面的循环后就空闲了
所以上述代码的输出结果就是100000次2和1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单线程的JS JavaScript用来操作DOM的用途决定了必须使用单线程 同步任务和异步任务 同步任务 : 在...
    panw3i阅读 519评论 0 0
  • 1.进程和线程 概念:进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位)线程是cpu调度的最小单位...
    喵呜Yuri阅读 938评论 0 1
  • 一、单线程 主线程:JavaScript是单线程的,所谓单线程,是指在JS引擎中负责解释和执行JavaScript...
    puxiaotaoc阅读 21,124评论 7 32
  • 针对闭包相信小伙伴们有很多不同的概念跟理解 何为闭包,从结构上来讲,闭包就是函数套函数,类似递归这种函数调用函数本...
    感觉不错哦阅读 937评论 0 4
  • JavaScript是一门单线程语言,所谓单线程,就是指一次只能完成一件任务,如果在同个时间有多个任务的话,这些任...
    JLong阅读 1,161评论 0 0