JS运行机制

JS运行机制

同步任务优先于异步任务。

在同步队列被执行完之前,任何异步的操作都不会被执行

单线程

任务队列

同步任务

console.log(1);

console.log(2);

异步任务

setInterval和setTimeout

DOM事件

ES6中的promise

Event Loop

运行栈运行的是同步任务。

浏览器识别了事件是一个异步任务,他不会把他放在运行栈里,而是拿走。

拿走了之后也不是立马放在异步队列中,同步任务执行完以后,再放入异步队列。

运行栈里没有任务了,就开始执行异步任务。

执行完后如果运行栈里没有任务了,再监听异步队列。

这个循环的过程就是EventLoop

JS中的事件循环

会放入异步任务队列的语句

语句放入异步任务队列的时机