DamomHd / interview-question

整理各大厂面试题
1 stars 0 forks source link

请说一下Js中的事件循环机制 #7

Open DamomHd opened 4 years ago

DamomHd commented 4 years ago

JS任务分类分为 同步任务异步任务

虽然JS是单线程的,但是浏览器内核却是多线程的,在浏览器内核中不同的异步操作由不同的浏览器内核模块调度执行,异步任务操作会将相关回调添加到任务队列中

然后不同的异步操作添加到任务队列的时机也是不同的,比如onclicksetTimeoutajax处理的方式都不相同

这些异步操作是由浏览器内核来执行的,浏览器内核上包含3种webAPI,分别是DOM Binding(Dom绑定)network(网络请求)timer(定时器)模块

按这种分类方式,JS的执行机制是:

以上三步循环执行,这就是事件循环(Event loop),它是连接任务队列控制调用栈