This means that by design, JavaScript motors — originally browsers — have one major thread of execution, and, to put it simply, process or function B cannot be executed until procedure or function A is completed. A web site’s UI is unresponsive to some other JavaScript processing whenever it’s occupied with executing something — this is known as DOM blocking.
The article JavaScript Web Employees: A Beginner’s Guide appeared on SitePoint.

The management of web development wasn’t very clear, when JavaScript was conceived in the first days of the world wide web. Due to the constant change in the industry and ecosystem, the demand for backward-compatibility with web standards and browsers, JavaScript’s development became a constant stream of hacks patches and afterthoughts.

JavaScript Is Single-threaded

Today’s mobile devices normally come with 8CPU cores, or 12+ GPU cores. Server and desktop CPUs have up to 16 cores or much more.

Within this environment, having a programming or scripting environment that’s single-threaded is a bottleneck.

In 2019, the web ecosystem has evolved to the point where the browser is the execution environment for applications. This is reflected in the speed with which the industry comes up with module loaders, paradigms, frameworks and bundlers, build tools, dependence supervisors, and package managers year after year.