Shi*_*sad 5 javascript runtime-environment node.js
我刚刚开始使用 Node.js,并且有相当多的 Python 和 C++ 背景。我了解到 Node.js 是一个运行时环境,但我很难理解它对代码的实际作用,使其与编译器不同。如果有人能够解释运行时环境与典型编译器和解释器的具体区别,那就更好了。
小智 5
让我们这样看:
\n\n\nNode.js 是一个基于 Chrome\xe2\x80\x99s V8 JavaScript 引擎构建的 JavaScript 运行时。
\n
V8 是 Google Javascript 引擎,Google Chrome 使用相同的引擎。\n还有其他 JS 引擎,例如 Firefox 使用的 SpiderMonkey、Safari 使用的 JavaScriptCore,而 Edge 最初基于 Chakra,但已被重建为使用 V8 引擎。
\n在讨论 V8 的工作原理之前,我们必须首先了解其中的关系。
\n\n\nJavaScript 引擎独立于其所在的浏览器。这一关键特性促成了 Node.js 的崛起。V8 被选为 Node.js 的驱动引擎。
\n
由于V8是独立开源的,我们可以将其嵌入到我们的C++程序中,而Nodejs本身只是一个用C++编写的程序。Nodejs 采用了 V8 并通过添加服务器所需的功能对其进行了增强。
\n\n\nJavaScript 通常被认为是一种解释性语言,但现代 JavaScript 引擎不再仅仅解释 JavaScript,而是编译它。
\n
由于您有 C++ 背景,C++ 执行所谓的提前 (AOT) 编译,代码在编译过程中转换为机器代码,然后再执行。
\n另一方面,JavaScript 由 V8 内部编译,并在执行期间完成即时 (JIT) 编译。当解释器执行代码时,它将跟踪经常调用的函数并将它们标记为热函数,然后将它们编译为机器代码并存储它们。
\n| 归档时间: |
|
| 查看次数: |
1862 次 |
| 最近记录: |