javascript引擎是单线程吗

JavaScript引擎是单线程的;JavaScript的主要用途是与用户互动以及操作DOM,为例避免复杂的同步问题,使其同一时间只能做一件事情,所以JavaScript是单线程的。

javascript引擎是单线程吗

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript引擎是单线程吗

JavaScript引擎是单线程的。

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

技术的出现,都跟现实世界里的应用场景密切相关的。

立即学习“Java免费学习笔记(深入)”;

同样的,我们就结合现实场景,来回答问题

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

单线程:同一个时间只能做一件事

JavaScript的单线程,与他的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这就决定了他只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

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

JS最初被设计用在浏览器中,那么想象一下,如果浏览器中的JS是多线程的。

场景描述:

那么现在有2个进程,process1 process2,由于是多进程的JS,所以他们对同一个dom,同时进行操作

process1 删除了该dom,而process2 编辑了该dom,同时下达2个矛盾的命令,浏览器究竟该如何执行呢?

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

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

场景描述:

如果JS中不存在异步,只能自上而下执行,如果上一行解析时间很长,那么下面的代码就会被阻塞。

对于用户而言,阻塞就意味着”卡死”,这样就导致了很差的用户体验

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

相关推荐:javascript学习教程

以上就是javascript引擎是单线程吗的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2936967.html

(0)
上一篇 2025年3月11日 21:06:53
下一篇 2025年3月11日 21:07:07

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javascript中random方法返回值包含0吗

    在JavaScript中random()方法的返回值包含0;random()方法可以返回一个0到1之间的随机数,返回的结果不包含1,但是包含0,语法为“Math.random()”。 本教程操作环境:windows10系统、javascri…

    2025年3月11日
    000
  • Javascript可以用双斜线注释吗

    在JavaScript中,可以使用双斜线进行注释;利用“//”可以对JavaScript代码进行单行注释,语法为“//单行注释内容”,利用“/*”和“*/”可以对JavaScript代码进行多行注释,语法为“/*多行注释内容*/”。 本教程…

    2025年3月11日
    200
  • javascript对象和函数的区别是什么

    区别:1、JavaScript对象是变量的容器,里面可以封装函数,而函数是被设计为执行特定任务的代码块;2、JavaScript对象无法封装操作过程,而JavaScript函数里面可以封装操作过程。 本教程操作环境:windows10系统、…

    2025年3月11日
    200
  • javascript怎么计算2的几次方

    在JavaScript中,可以利用pow()方法来计算2的几次方结果,该方法用于计算指定数的几次幂,当一次以参数设置为2时,可以计算2的几次方结果,该函数的第二个参数用于设置幂数,语法为“Math.pow(2,幂数)”。 本教程操作环境:w…

    2025年3月11日
    200
  • javascript有哪些库

    javascript库有:jQuery、React、“D3.js”、Underscore、Lodash、Algolia Places、“Anime.js”、Animate On Scroll、“Bideo.js”、“Chart.js”等等。…

    2025年3月11日
    200
  • javascript是什么框架

    javascript不是框架,而是一种脚本语言。javascript简称js,是一种具有函数优先的轻量级,解释型或即时编译型的脚本语言,是一种广泛用于客户端的编程语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。 本…

    2025年3月11日
    200
  • javascript插件是什么意思

    在JavaScript中,插件就是封装原生JavaScript方法和属性的文件,能够让开发者的使用更为方便,使用插件的目的就是为了提高开发者的工作效率。 本教程操作环境:windows10系统、javascript1.8.5版、Dell G…

    2025年3月11日
    200
  • javascript怎么让li隐藏

    JavaScript中,可用style对象的display属性让li元素隐藏,display属性用于设置元素的显示与隐藏,当属性值设置为“none”时,元素会被隐藏不显示,语法为“li元素对象.style.display=”no…

    2025年3月11日
    200
  • JavaScript中#fff是什么颜色

    在JavaScript中,“#fff”是白色;“#fff”是十六进制颜色码的简写方式,颜色值由十六进制来表示红、绿、蓝,每个颜色的最低值为“00”,最高值为“FF”,“#fff”也可以使用“#ffffff”来表示。 本教程操作环境:wind…

    2025年3月11日
    200
  • javascript中数字占多少位bit

    JavaScript中数字占的内存是64位,也就是64bit;JavaScript中的数字都是以双精度浮点数来存储的,双精度浮点数占的内存是8byte,也即64bit。 本教程操作环境:windows10系统、javascript1.8.5…

    2025年3月11日
    200

发表回复

登录后才能评论