Einführung in Javascript-Engines
JavaScript ist für Computer nicht verständlich, aber der einzige Browser versteht JavaScript. Wir brauchen also ein Programm, um unser JavaScript-Programm in eine computerverständliche Sprache umzuwandeln. Eine JavaScript-Engine ist ein Computerprogramm, das JavaScript-Code ausführt und in eine computerverständliche Sprache umwandelt.
Liste der JavaScript-Engines:
Browser | Name der Javascript-Engine |
Google Chrome | V8 |
Kante (Internet Explorer) | Chakra |
Mozilla-Firefox | Spinnenaffe |
Safari | Javascript-Core-Webkit |
Lassen Sie uns jeden von ihnen verstehen.
1. V8: V8 ist eine JavaScript-Engine, die vom Chromium-Projekt für Google Chrome- und Chromium-Webbrowser entwickelt wurde. Es ist eine JavaScript-Engine, die eigenständig ausgeführt oder in eine beliebige C++-Anwendung eingebettet werden kann. Mit einem eigenen Parser generiert es einen abstrakten Syntaxbaum. Dann generiert Ignition Bytecode aus diesem Syntaxbaum unter Verwendung des internen V8-Bytecode-Formats. Bytecode wird von TurboFan in Maschinencode kompiliert. Es übernimmt auch die Speicherzuweisung für Objekte und die Garbage Collection von Objekten, die es nicht mehr benötigt. Optimierungstechniken wie das Eliminieren teurer Laufzeiteigenschaften und Inline-Caching. Der Garbage Collector ist ein generationenübergreifender inkrementeller Collector.
V8 bietet einen Vorteil, da JavaScript viel schneller ausgeführt werden kann, was die Weberfahrung der Benutzer verbessert, den Weg für die Entwicklung von Webanwendungen ebnet und das schnelle Wachstum von serverseitigem JavaScript durch Projekte wie Node.js vorantreibt.
2. Chakra: Chakra ist eine von Microsoft entwickelte JScript-Engine. Es handelt sich um proprietäre Software. Es wird im Webbrowser Internet Explorer verwendet. Eine Besonderheit der Engine ist, dass sie Skripte parallel zum Webbrowser JIT auf einem separaten CPU-Kern kompiliert.
3. Spider Monkey: SpiderMonkey ist die erste JavaScript-Engine, geschrieben von Brendan Eich bei Netscape Communications, später als Open Source veröffentlicht und derzeit von der Mozilla Foundation gepflegt. Es wird immer noch im Firefox-Webbrowser verwendet.
4. Webkit: WebKit wird von Apple entwickelt und in seinem Safari-Webbrowser sowie in allen iOS-Webbrowsern verwendet. Es wird vom BlackBerry Browser, PlayStation-Konsolen ab PS3, den mobilen Tizen-Betriebssystemen und einem Browser verwendet, der im E-Book-Reader von Amazon Kindle enthalten ist. Die C++-API (Application Programming Interface) von WebKit bietet eine Reihe von Klassen zum Anzeigen von Webinhalten in Fenstern und implementiert Browserfunktionen wie das Verfolgen von Links, wenn der Benutzer darauf klickt, das Verwalten einer Rückwärts-Vorwärts-Liste und das Verwalten eines Verlaufs kürzlich besuchter Seiten.
Beispiel 1: Ausführen von JavaScript-Code über die Konsole: Für die Nashorn-Engine wurde mit Java 8 ein neues Befehlszeilentool eingeführt, iejjl. Wir müssen die folgenden Schritte ausführen, um JavaScript-Code über die Konsole auszuführen:
- Erstellen Sie eine Datei mit dem Namen geeksforgeeks.js.
- Öffnen Sie geeks.js und schreiben Sie den folgenden Code in die Datei und speichern Sie ihn.
Javascript
<script> var gfg= function(){ print("Welcome to Geeksforgeeks!!!"); }; gfg(); </script>
Ausgabe:
Welcome to Geeksforgeeks!!!
Beispiel 2: Ausführen einer JavaScript-Datei durch Einbetten einer JavaScript-Datei in Java-Code mit Hilfe der ScriptEngine-Klasse: Mit Hilfe der ScriptEngine-Klasse können wir eine JavaScript-Engine erstellen und mit der JavaScript-Engine können wir die JavaScript-Datei ausführen.
// 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!!!')"); } }
Ausgabe:
Möglicherweise erhalten Sie einen Laufzeitfehler wie
Warnung: Die Nashorn-Engine soll aus einer zukünftigen JDK-Version entfernt werden
Dies liegt daran, dass Nashorn durch GraalVM ersetzt wird.
GraalVM : Es ist eine Hochleistungslaufzeit, die die Anwendungsleistung und -effizienz verbessert. Es wurde für Anwendungen entwickelt, die in verschiedenen Programmiersprachen wie Java, JavaScript, LLVM-basierten Sprachen wie C und C++ und anderen dynamischen Sprachen geschrieben wurden. Es hebt die Isolation zwischen Programmiersprachen auf und ermöglicht Interoperabilität in einer gemeinsamen Laufzeit