• 历史原因:当时创建 js 多进程多线程架构不流行,硬件支持不好
  • 多线程会增加复杂性,需要加锁
  • 在多线程且不加锁操作 DOM 的时候会导致 DOM 不可预测

补充理解:

  • 这里说的“单线程”主要是指执行 JavaScript 的主线程
  • 放到 Node 场景里看,可以参考 Node 包含哪些线程:Node 默认通常是单进程,但进程内部依然会有多个辅助线程协作