V8 JavaScript 引擎
V8 是 Google Chrome 浏览器所使用的 JavaScript 引擎的名称。它负责接收我们的 JavaScript 代码并在使用 Chrome 浏览时执行这些代码。
V8 是 JavaScript 引擎,即它解析并执行 JavaScript 代码。DOM 和其他 Web 平台 API(它们共同构成了运行时环境)由浏览器提供。
令人兴奋的是,JavaScript 引擎独立于其所驻留的浏览器。这一关键特性促成了 Node.js 的兴起。V8 在 2009 年被选为 Node.js 的引擎,随着 Node.js 的普及,V8 现在成为了为大量用 JavaScript 编写的服务器端代码提供动力的引擎。
Node.js 生态系统非常庞大,这要归功于 V8,它也为 Electron 等项目中的桌面应用程序提供支持。
其他 JS 引擎
其他浏览器也有自己的 JavaScript 引擎:
SpiderMonkey
(Firefox)JavaScriptCore
(也称为Nitro
) (Safari)- Edge 最初基于
Chakra
,但最近已使用 Chromium 和 V8 引擎重新构建。
还有许多其他的引擎。
所有这些引擎都实现了 ECMA ES-262 标准,也称为 ECMAScript,这是 JavaScript 使用的标准。
对性能的追求
V8 使用 C++ 编写,并且不断改进。它具有可移植性,可在 Mac、Windows、Linux 和其他几个系统上运行。
在本 V8 简介中,我们将忽略 V8 的实现细节:这些细节可以在更权威的网站(例如 V8 官方网站)上找到,并且它们会随着时间推移而发生变化,通常是根本性的变化。
V8 始终在发展,就像其他 JavaScript 引擎一样,以加快 Web 和 Node.js 生态系统速度。
在 Web 上,多年来一直在进行一场性能竞赛,而我们(作为用户和开发者)从这场竞争中受益匪浅,因为我们年复一年地获得更快、更优化的机器。
编译
JavaScript 通常被认为是一种解释型语言,但现代 JavaScript 引擎不再仅仅解释 JavaScript,它们会将其编译。
这种情况自 2009 年开始,当时 SpiderMonkey JavaScript 编译器被添加到 Firefox 3.5 中,之后每个人都遵循了这个想法。
V8 使用即时 (JIT) 编译内部编译 JavaScript 以加快执行速度。
这看起来可能违反直觉,但自从 2004 年 Google Maps 推出以来,JavaScript 已从一种通常执行几十行代码的语言发展成为一种在浏览器中运行数千到数十万行代码的完整应用程序的语言。
我们的应用程序现在可以在浏览器中运行数小时,而不仅仅是一些表单验证规则或简单的脚本。
在这个新世界中,编译 JavaScript 非常有意义,因为虽然让 JavaScript 准备好可能需要花费更多一点时间,但一旦完成,它将比纯解释代码高效得多。