JavaScript 是单线程的,而为了避免耗时较为严重的任务影响整体任务,异步编程就显得尤为重要了。
相关参考文章:
- 对引擎、运行时和调用栈的概述
- 深入 V8 引擎以及 5 个写出更优代码的技巧
- 内存管理以及四种常见的内存泄漏的解决方法
- JavaScript 是如何工作的: 事件循环和异步编程的崛起 + 5个如何更好的使用 async/await 编码的技巧
- JavaScript 运行机制详解:再谈Event Loop
一、JavaScript是如何工作的
- V8 引擎 (chrome & ndoe)(将 JavaScript 代码直接编译为机器码)
- 运行时 (宿主环境)(web APIs)
- 单线程 (多线程 - 死锁)
- 事件驱动
- 回调队列
事件循环
- 作业队列(Job Queue)