当前位置: 首页> 教育> 培训 > js事件循环

js事件循环

时间:2025/7/9 19:14:08来源:https://blog.csdn.net/weixin_46515434/article/details/141159231 浏览次数:1次

js事件循环

1.事件循环
js是一门单线程语言,为了执行异步任务而不阻塞后续代码,以及避免等待时间的资源浪费,js存在事件循环(Event Loop)的机制。(为了利用多核cpu的计算能力,html5提出了web worker标准,允许js新建多个线程,子线程完全受主线程控制,且不能操作DOM。也并没有改变js单线程的本质。)

主线程在运行时会产生"执行栈",栈中的代码如果调用了异步api时就会把事件添加到"事件队列"中,只要该异步任务有了结果便会把对应的回调放到"任务队列"里,当"执行栈"中的代码执行完毕后会去读取"任务队列"里的任务,将其放到主线程执行,当执行栈空了再去检查,如此往复也就是事件循环了 。

当JavaScript代码执行到一个异步操作或事件时,它并不会立即执行,而是将其放入对应的任务队列中。当当前任务执行完成后,在下一个事件循环的开始,JavaScript会从任务队列中取出一个任务,执行该任务。当任务执行时,可能会产生新的异步操作和事件,这些新的操作也会被放入任务队列中等待执行。

js事件分两种:“同步任务”和“异步任务”。异步任务又分为“宏任务”(比如setTimeout/setInterval/setImmdiate/IO/UI rendering等)和“微任务”(比如promise.then()/node中的process.nextTick()等)
2.例子
注意两个例子的区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关键字:js事件循环

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: