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:

BrowserName der Javascript-Engine
Google ChromeV8
Kante (Internet Explorer)Chakra
Mozilla-FirefoxSpinnenaffe
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