事件循环
事件循环在 ES6 规范 中并没有的提及。JavaScript 本身只有任务和任务队列的概念。更复杂的事件循环的概念分别定义在 NodeJS 和 HTML5 规范中。因为此系列是讲的前端,所以在这里我将会阐述后者。
事件循环被称为一个循环,是有一个原因的。它无限循环并寻找新任务来执行。该循环的单次遍历叫做一个 tick。在tick 期间执行的代码叫一个任务(task)。
while (eventLoop.waitForTask()) {
eventLoop.processNextTask()
}
任务是指可以在循环中安排其他任务的同步代码片段。调度新任务的一种简单的编程方法是 setTimeout(taskFn)
。
然而,任务可能来自其它几种来源,比如用户事件,网络请求或者 DOM 操作。