位置: 编程技术 - 正文

详细分析单线程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(前端 插件)

  • 上月少计提的个税本月怎么调整
  • 委托收款和托收承付结算方式,都受结算金额起点的限制
  • 食堂买菜费用如何做会计
  • 软件维护费属于费用还是资产
  • 收到赠送的商品并销售
  • 保险经纪公司要取得什么证
  • 税率开错情况说明
  • 销售自产设备税率
  • 预借差旅费凭证填写
  • 车辆购置税退税流程
  • 股权转让过渡期损益会计处理
  • 工业企业新产品的特点
  • 取得抵债资产的相关税费计入
  • 出口货物免税的税种包括
  • 收到供应商违约金 发票
  • 长期借款工程完工时会计处理怎么做?
  • 预付账款损失的账务处理如何编制呢?
  • 跨省的分公司亏损需要缴纳所得税吗?
  • 中国公司投资海外有什么限制
  • 待转销项税额如何列报
  • 甲供材项目施工方怎样开票
  • 马克龙成就
  • 商品流通企业批发销售会计分录
  • 营业执照办下来多久能在网上查到
  • 什么叫二类费用
  • 公司负担劳务费的个税如何做分录
  • 企业所得税增值税完税证明
  • 固定资产管理的论文
  • 已经认证抵扣的发票需要冲红
  • 未开票收入怎么计算增值税
  • 收入记借方
  • 公司用车车祸一般谁负责
  • 文件夹共享设置权限
  • win11电脑怎么重置
  • ntkrpamp.exe
  • 货到付款怎么做账
  • PHP:finfo_buffer()的用法_fileinfo函数
  • controller 层
  • 退回以前年度多交的附加税怎么做分录
  • 前端面试题什么是网络协议
  • php生成唯一id
  • 残保金缴纳需要计提吗
  • 企业提取盈余公积属于什么会计科目
  • Parcel 中文文档 | Parcel 中文网
  • 资产报废的原因及情况说明
  • 脚手架租赁费用超过购买价格
  • 没有开具发票的收入如何入账?
  • 土地使用发票
  • 应交税费案例分析题
  • 汇算清缴没有调整怎么办
  • 鲜花虫草开发票属于什么类别?
  • 购买货物收到发票怎么做账小规模
  • 分红需要满足的条件包括
  • 区分好坏
  • 员工借款属于什么现金流量
  • 公司自己搭建的房子出租可以按投资性房地产吗
  • 2018城镇医疗保险缴费
  • 国家资产负债表
  • 关于端午节福利发放的通知(通知公告)
  • 消耗性生物资产与生产性生物资产的区别
  • 什么是库存现金限额
  • 转出未交增值税借方余额表示什么
  • mysql数据库性能
  • mysql使用入门教程视频
  • linux执行sh文件显示不存在
  • player文件怎么打开
  • win10系统edge浏览器打不开解决办法
  • linux vmware命令行
  • win7运行窗口在哪
  • 如何执行perl脚本
  • 如何使用jquery插件
  • 数据结构 二叉树什么是孩子数
  • android工具包
  • js数组用法
  • python中如何抛出异常
  • 充值卡和预付卡区别
  • 残保金申报表填写
  • 辽宁社保网上申报流程图
  • 如何认真贯彻落实中央八项规定,切实改进工作作风
  • 电子税务局备案财务会计制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设