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