JS 为什么是单线程?

28 阅读1分钟

结论:故意将 JS 设计成单线程并阻塞渲染。

当时为了增强网页交互,所以才创造了 JS,最初提供一些简单动画 + 基本的表格提交功能。

既然涉及网页交互,那就不得不考虑它与页面渲染的关系。

那为什么不能是多线程呢?

假设 JS 被设计为多线程,那如果存在多段代码更改同一个 DOM,这就没法确定先用哪段代码

那什么要阻塞渲染呢?

因为 JS 具有操作 DOM 的能力,如果在执行 JS 时,页面也同时进行渲染,这就没法确定先用 JS 的还是 HTML/CSS 的

所以故意将 JS 设计成单线程并阻塞渲染。