javascript是单线程-javascript引擎是单线程的吗?

JavaScript 引擎是单线程的; JavaScript 的主要目的是与用户交互并操作 DOM,例如避免复杂的同步问题,使其一次只能做一件事,因此 JavaScript 是单线程的。

本教程的运行环境:windows10系统,javascript1.8.5版本,戴尔G3笔记本。

javascript引擎是单线程的吗?

JavaScript 引擎是单线程的。

JS为什么是单线程的? 为什么需要异步? 单线程如何实现异步?

技术的出现与现实世界的应用场景密切相关。

同样的,我们也会结合现实生活场景来回答问题

(1)JS为什么是单线程的?

单线程:一次只能做一件事

JavaScript的单线程与其使用有关。 作为一种浏览器脚本语言,JavaScript 的主要目的是与用户交互并操作 DOM。 这就决定了它只能是单线程的,否则会带来非常复杂的同步问题。 例如javascript是单线程,假设JavaScript同时有两个线程,一个线程向某个DOM节点添加内容javascript是单线程,另一个线程删除该节点,那么浏览器应该以哪个线程为标准呢?

为了利用多核CPU的计算能力,HTML5提出了Web Worker标准,该标准允许JavaScript脚本创建多个线程,但子线程完全由主线程控制,不得操作DOM。 因此,这个新标准并没有改变 JavaScript 的单线程本质。

JS 最初是为了在浏览器中使用而设计的,所以想象一下,如果浏览器中的 JS 是多线程的。

场景描述:

js单线程执行机制_线程是java的什么机制_javascript是单线程

那么现在有两个进程,process1 process2,因为是多进程JS,所以同时操作同一个dom

process1删除dom,process2编辑dom,同时发出两个矛盾的命令,浏览器应该如何执行呢?

这么一想,就应该很容易理解为什么JS被设计成单线程了。

线程是java的什么机制_javascript是单线程_js单线程执行机制

(2)为什么JS需要异步?

场景描述:

JS如果没有异步的话,只能从上到下执行。 如果上一行的解析时间很长,下面的代码就会被阻塞。

对于用户来说,阻塞就意味着“卡住”,从而导致用户体验不佳

所以,JS中存在异步执行。