软件下载

js文件怎么运行(JavaScript 是如何运行的?)

软件下载 投稿 2022-06-11 17:19:34 浏览

JavaScript 是如何运行的?

几乎每个人都听说过 v8引擎这个概念,大多数人都知道 JavaScript 是单线程的,或者它使用的是回调队列。

执行 JavaScript 代码所涉及的核心组件包括运行时环境和浏览器,他们内部如何工作呢?

  • JavaScript Engine
  • JavaScript Runtime Environment
  • The Call Stack
  • Concurrency and Event Loop

JavaScript 是一种解释性编程脚本语言,JavaScript 引擎就是一个执行 JavaScript 代码的计算机程序:解释器,当 JavaScript 文件在浏览器中加载时,负责逐行解析代码,将其转换为机器代码,然后执行它。

JavaScript 是如何运行的?

 

每个浏览器都有自己的 JavaScript 引擎,但最著名的是 Google 的 v 8引擎。V8引擎不仅为 Google Chrome 提供动力,还为 Node.js 提供动力,这就是 JavaScript 运行时。

JavaScript 是如何运行的?

 

引擎由两个主要组件组成:

  • 内存堆(Memory Heap)ーー这是内存分配发生的地方
  • 调用堆栈(Call Stack)ーー这是代码执行时堆栈帧的位置
JavaScript 是如何运行的?

 

Call Stack调用堆栈:计算模型:栈下推自动机,图灵等价。

JS是一种单线程的编程语言,这意味着它只有一个 Call Stack。因此,它可以一次只做一件事。并且不必处理在多线程环境中出现的复杂场景(例如,死锁)。

调用堆栈是一种数据结构,它基本上记录我们在程序中的位置。如果我们进入一个函数,我们把它放在堆栈的顶部。如果我们从一个函数返回,我们将从堆栈顶部弹出。

运行时

JavaScript 引擎并不是孤立运行的。它和许多其他组件一起运行在一个叫做JavaScript Runtime Environment 中。

JRE 负责JavaScript 的异步执行。组件包含:

  • JS Engine, such as V8
  • Web API
  • Callback Queue or message queue
  • Event Table
  • Event loop
JavaScript 是如何运行的?

 

并发性和事件循环

虽然是单线程,为了处理多任务,需要并发交替执行,

并发、多线程、多进程、异步编程和事件循环等是一组相关概念,交织在PL和OS的中间。

首先,并发性是一个概念,它能够无序地处理多个任务。任务一般分为计算密集和读写密集。

real world,一个餐厅,一排人点菜后,后厨出菜就是无序的,有的菜工序复杂就得多等,这就是异步,同步就是先来后到一个个上完菜。

实现并发性的技术很多,包括多线程、多进程和异步编程。

异步编程, 比如node.js并发性 使用的异步 i/o,将 i/o 操作移交给操作系统内核,并将 i/o 操作的回调推迟。异步io这个任务就放在事件循环队列进行调度。

由此各组件基本解释一番。

「真诚赞赏,手留余香」

求资源网

真诚赞赏,手留余香

使用微信扫描二维码完成支付

继续浏览有关编程的文章
发表评论
留言与评论(共有 0 条评论)
   
验证码:
版权声明

求资源网所发布的一切破解补丁,软件,以及其他分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。
否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。