要讲到事件循环,首先要先了解JavaScript的特点,JavaScript其一大特点就是单线程,即它一次只能处理一个任务,为了应对单线程限制从而引入了同步和异步执行模型。
1. 同步任务:在主线程上顺序执行,形成一个执行栈(Call Stack)。
2. 异步任务:如AJAX、setTimeout...这些都算是异步任务,都是通过JavaScript提供的API来启动的,但是它们不会立即启动执行,而是会等待条件满足(如定时器时间到达,网络请求返回数据...),一旦异步操作条件满足,JavaScript会将相应的回调函数(也就是异步任务)添加到任务队列中,如果主线程是空闲的,就会从任务队列中取出一个任务推入到执行栈中执行,这个反复的从任务队列中取任务的过程就是事件循环。
这篇文章只是简单描述了一下什么是事件循环,里面暂时还没有提到到宏任务和微任务,下期更新,记得关注哦!