Javascript引擎简介
计算机无法理解 JavaScript,但只有浏览器才能理解 JavaScript。因此,我们需要一个程序来将我们的 JavaScript 程序转换为计算机可以理解的语言。 JavaScript 引擎是一种计算机程序,它执行 JavaScript 代码并将其转换为计算机可理解的语言。
JavaScript 引擎列表:Browser Name of Javascript Engine Google Chrome V8 Edge (Internet Explorer) Chakra Mozilla Firefox Spider Monkey Safari Javascript Core Webkit
让我们了解他们中的每一个。
1. V8: V8 是 Chromium 项目为 Google Chrome 和 Chromium 网页浏览器开发的 JavaScript 引擎。它是一个 JavaScript 引擎,可以独立运行,也可以嵌入到任何 C++ 应用程序中。它使用自己的解析器生成抽象语法树。然后,Ignition 使用内部 V8 字节码格式从这个语法树生成字节码。字节码由 TurboFan 编译成机器码。它还处理对象的内存分配,并垃圾收集它不再需要的对象。优化技术,例如省略昂贵的运行时属性和内联缓存。垃圾收集器是分代增量收集器。
V8 提供了一个优势,因为它允许 JavaScript 运行得更快,从而改善了用户的 Web 体验,为 Web 应用程序的开发铺平了道路,并通过 Node.js 等项目刺激了服务器端 JavaScript 的快速增长。
2. Chakra: Chakra是微软开发的JScript引擎。它是专有软件。它用于 Internet Explorer 网络浏览器。该引擎的一个显着特点是它 JIT 在单独的 CPU 内核上编译脚本,与 Web 浏览器并行。
3. Spider Monkey: SpiderMonkey 是第一个 JavaScript 引擎,由 Netscape Communications 的 Brendan Eich 编写,后来以开源形式发布,目前由 Mozilla 基金会维护。它仍在 Firefox 网络浏览器中使用。
4. Webkit: WebKit 由Apple 开发并用于其Safari 网络浏览器,以及所有iOS 网络浏览器。黑莓浏览器、从 PS3 开始的 PlayStation 游戏机、Tizen 移动操作系统以及 Amazon Kindle 电子书阅读器附带的浏览器都使用它。 WebKit 的 C++ 应用程序编程接口 (API) 提供了一组类来在窗口中显示 Web 内容并实现浏览器功能,例如在用户单击时跟踪链接、管理后退列表以及管理最近访问的页面的历史记录。
示例 1:使用控制台执行 JavaScript 代码:对于 Nashorn 引擎, Java 8 引入了一种新的命令行工具 iejjl。我们必须按照以下步骤通过控制台执行 JavaScript 代码:
- 创建一个名为 geeksforgeeks.js 的文件。
- 打开 geeks.js 并将以下代码写入文件并保存。
Javascript
输出:
Welcome to Geeksforgeeks!!!
示例 2:通过 ScriptEngine 类将 JavaScript 文件嵌入到Java代码中来执行 JavaScript 文件: 借助 ScriptEngine 类,我们可以创建一个 JavaScript 引擎,通过 JavaScript 引擎,我们可以执行 javaScript 文件。
// Program to show usecase of Javascript
// prog in Java Prog
import javax.script.*;
import java.io.*;
public class Geeksforgeeks {
public static void main(String[] args)
throws Exception {
// Generating Nashorn JavaScript Engine
ScriptEngine ee = new ScriptEngineManager()
.getEngineByName("Nashorn");
// Directly use JS Code inside Java Code
ee.eval("print('Welcome to Geeksforgeeks!!!')");
}
}
输出:
您可能会遇到运行时错误,例如
Warning: Nashorn engine is planned to be removed from a future JDK release
这是因为 Nashorn 将被GraalVM 取代。
GraalVM :它是一种高性能运行时,可提高应用程序的性能和效率。它专为使用各种编程语言(如Java、JavaScript、基于 LLVM 的语言(如 C 和 C++)以及其他动态语言)编写的应用程序而设计。它消除了编程语言之间的隔离,并在共享运行时中实现了互操作性