****
我们知道,单线程与异步编程听起来是矛盾的,哪JS是如何实现异步编程呢,答案就是事件循环。
- 当同步代码时,引擎会顺序执行。
- 当碰到异步的代码时,引擎会将这个任务挂起,放入一个事件队列。
- 当同步代码执行完成后,
- ****
从代码来看,js事件循环是采用类似下边这种方式来实现的:
javascript
while (queue.waitForMessage()) {
queue.processNextMessage();
}
关于宏任务、微任务
************
虽然js是单线程的,但js的执行环境浏览器并不是单线程的,
其中渲染进程是执行js代码和渲染dom元素的进程,,例如处理用户事件。