位置: 编程技术 - 正文

详细分析单线程JS执行问题(单线程语言有哪些)

编辑:rootadmin

推荐整理分享详细分析单线程JS执行问题(单线程语言有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:单线程叙事,单线程语言有哪些,什么叫单线程,什么叫单线程,单线程语言有哪些,单线程概论,单线程处理,单线程的优点,内容如对您有帮助,希望把文章链接给更多的朋友!

大家在学习javascript的时候很多朋友在执行问题上有疑惑,小编通过本篇文章给大家详细的分析介绍了JS的执行问题,希望能够帮助到你理解。

一、介绍

随着js不断学习,你可能会慢慢的好奇,用了这么久的js,却不知道这js在浏览器怎么被执行的,很尴尬。所以,我查阅很多资料来总结JS的执行过程,也分享出来,和大家一起学习。

本篇主要讲单线程的JS涉及的名词:JS引擎,单线程,执行栈,执行上下文(execution context)

二、JS引擎

JS引擎是浏览器的重要组成部分,主要用于读取并执行js。就是这家伙执行js的,但它不止于执行js。

各大浏览器的JS引擎:

浏览器

Js引擎

Chrome V8 Firefox SpiderMonkey IE Chakra(查克拉) Safari Nitro/JavaScript Core Opera Carakan

虽然每个浏览器的JS引擎都不同,但他们执行js机制大致相同。

三、JS执行是单线程

单线程是指Js引擎执行Js时只分了一个线程给他执行,也就是执行js时是单线程的。

a.先了解线程 有人可能会疑惑,线程是什么?

详细分析单线程JS执行问题(单线程语言有哪些)

直接举个例子吧,你打开一个浏览器(应用程序),那浏览器就是一个进程。打开浏览器后要做很多事情(各种分工):发送请求,接受请求,渲染页面,执行js等等这些就是一个个线程。

我这里只是简单的说一下,具体的大家可以找计算机操作系统资料深入学习。

b.为什么是单线程 有可能有疑惑,为什么js执行要单线程,如果多线程不是可以执行得快一点吗?

这个要回到Js历史了,布兰登·艾奇(Brendan Eich)老哥用天创造js。当时js用来干嘛,简单的浏览器交互,验证,操作一下dom是吧。那把它设计成那么复杂干什么,而且如果多线程的话,操作dom会出现麻烦的事情,假设一个线程读取DOM节点数据的同时,另一个线程把那个DOM节点删了,呵呵。所以js一个线程就够了,也就是一步一步顺序运行下来。

c.证明一下单线程

单线程只能一步步执行下来,所以执行以下代码会导致阻塞(有个while死循环),不会弹出hello

四、执行栈

实现js执行时的单线程,js引擎维护一个执行栈。(先进后出)

来个例子:运行这段代码是执行栈是怎么做的。

执行栈代码模拟

执行栈图示:

这里主要是js在执行时的一个总体过程,但是你们可能会疑惑,压进栈里面的一块块(抽象)东西到底包含的是什么?我可以告诉你们是,执行上下文,global是指全局的的执行上下文,其他的是函数执行上下文,那到底这些上下文包含什么,我会在下一篇详解。

五、小结

这篇主要是将js单线程是什么,并且怎么实现单线程的,先有个总体js执行过程的印象,下一篇会详细写js执行的细节,执行上下文。

前端必备插件之纯原生JS的瀑布流插件Macy.js 这是一款非常轻量级的纯原生JS的瀑布流插件——Macy.js,如今图片和视频网站非常多,非常适应瀑布流这样的布局方式来呈现给用户。这款流布局JS插件

ActiveX控件的使用-js实现打印超市小票功能代码详解 ·应客户的需求==,要在网页端实现打印小票的功能·先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略)用什么方法实

arcgis for js栅格图层叠加(Raster Layer)问题 其实呢,这个问题或许与栅格图层(RasterLayer)关系并不十分大,也可能所有类型的图层都有这个问题,我对arcgis尚不十分了解,目前只在栅格图层遇到

标签: 单线程语言有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/369852.html 转载请保留说明!

上一篇:bootstrap表格内容过长时用省略号表示的解决方法(bootstrap表格内容模板)

下一篇:前端必备插件之纯原生JS的瀑布流插件Macy.js(前端 插件)

  • 社保由税务局统一征收的地区
  • 代销和委托代销区别
  • 小规模纳税人代扣代缴个人所得税
  • 小规模补交去年的所得税资产负债表怎么调整
  • 所得税季报利润表怎么填
  • 个人到税务局开发票要带什么东西
  • 建筑企业劳务工资必须要开劳务发票吗?
  • 房地产企业汇算清缴要点
  • 车辆抵押登记费用可以退回吗
  • 用于本企业职工的福利应当征收消费税吗
  • 车间员工的质量管理制度
  • 公司注销留抵税额税法规定
  • 准予扣除的工会经费怎么算
  • 企业应纳税所得额计算例题
  • 不缴地税国税可停票吗?
  • 未到期汇票要怎么进行税务处理?
  • 个体工商户需要做账吗
  • 在建工程产生废料收入的账务处理?
  • 企业对外捐赠现金的会计处理
  • 什么是商务接待与拜访
  • 税法中的视同行为如何开具发票
  • 监事会职权范围是什么
  • php实现的三个常数是什么
  • 删掉广告有什么办法
  • win10创意者更新易升
  • php bcsub
  • 净资产和净利润一样吗
  • 月末季末年末会计都需要做什么
  • 集团公司管理费提取办法
  • 偷税行为五年后被发现要接受行政处罚吗?
  • pytorch_lightning.utilities.exceptions.MisconfigurationException: You requested GPUs: [1] But...
  • 企业债权人进行财务分析的根本目的是关心企业的
  • 计算机视角技术
  • 关基系统防SSL证书断供,知道创宇“包办式”国密改造方案省心又安全
  • nmcli命令配置bond
  • 无形资产转让手续怎么办
  • 汽车租赁的法律
  • 营业外支出贷方在利润表怎么体现
  • 2、springboot+mybatis+ajax+pageHelper+idea+maven(全套增删改查)
  • 织梦的css样式在哪
  • 收外汇是一定要交税吗
  • 工资预提和计提的区别
  • 税控盘减免税款怎么结转
  • persona工具
  • 银行账户如何开立
  • 存货周转率多少算合理
  • 电子商业承兑会不会拿不到钱
  • 租入的房子再出租用交房产税吗?
  • 政府补助收入总额法会计分录
  • 结转已到期未兑现的商业承兑汇票会计分录
  • 自查时发现以前的事情
  • 从法人借款现金分录
  • 收履约保证金的会计分录
  • 以前年度不合规发票如何调年报
  • 累计盈余下级科目
  • 递延所得税与递延所得税费用
  • 建账的要点及应注意的问题
  • mysql source 慢
  • 阿里云 centos7 替换
  • 组装电脑光盘分几种
  • mac应用图标不见了怎么办
  • xpkw
  • mac上播放器
  • RegSrvc.exe - RegSrvc是什么进程 有什么用
  • win 7组策略
  • manager是啥
  • win10更新后qq打不开
  • win10预览版和正式版区别
  • win8 embedded
  • javascriptjs
  • sequelize-cli
  • listary 替代
  • vue cli3 webpack配置
  • javascript的理解
  • 以下代码的运行结果是哪一项
  • python连接MySQL数据库增删改查
  • 安卓手机与电脑连接方法
  • jquery将文本框设置为只读
  • android中使用sharedprefence的步骤
  • 是否一般纳税人怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设