JavaScript não é compreensível por computador, mas o único navegador entende JavaScript. Portanto, precisamos de um programa para converter nosso programa JavaScript em uma linguagem compreensível por computador. Um motor JavaScript é um programa de computador que executa código JavaScript e o converte em linguagem compreensível por computador.

Lista de mecanismos de JavaScript:

NavegadorNome do motor Javascript
Google ChromeV8
Edge (Internet Explorer)Chakra
Mozilla FirefoxMacaco aranha
Safári Javascript Core Webkit

Vamos entender cada um deles.

1. V8: V8 é um mecanismo JavaScript desenvolvido pelo Projeto Chromium para navegadores da web Google Chrome e Chromium. É um mecanismo JavaScript que pode ser executado de forma autônoma ou incorporado em qualquer aplicativo C++. Usando seu próprio analisador, ele gera uma árvore de sintaxe abstrata. Em seguida, o Ignition gera bytecode a partir dessa árvore de sintaxe usando o formato de bytecode V8 interno. Bytecode é compilado em código de máquina pelo TurboFan. Ele também lida com a alocação de memória para objetos, e coleta de lixo os objetos que não são mais necessários. Técnicas de otimização, como elisão de propriedades caras de tempo de execução e cache embutido. O coletor de lixo é um coletor incremental de geração.

O V8 oferece uma vantagem, pois permite que o JavaScript seja executado com muito mais rapidez, o que melhora a experiência dos usuários na web, abre caminho para o desenvolvimento de aplicativos da web e estimula o rápido crescimento do JavaScript do lado do servidor por meio de projetos como Node.js.

2. Chakra: Chakra é um mecanismo JScript desenvolvido pela Microsoft. É um software proprietário. Ele é usado no navegador Internet Explorer. Uma característica distintiva do mecanismo é que ele compila scripts em um núcleo de CPU separado, paralelo ao navegador da web.

3. Spider Monkey: SpiderMonkey é o primeiro motor JavaScript, escrito por Brendan Eich na Netscape Communications, mais tarde lançado como open-source e mantido atualmente pela Mozilla Foundation. Ele ainda é usado no navegador Firefox.

4. Webkit: o WebKit é desenvolvido pela Apple e usado em seu navegador Safari, bem como em todos os navegadores iOS. Ele é usado pelo BlackBerry Browser, consoles PlayStation começando no PS3, os sistemas operacionais móveis Tizen e um navegador incluído com o leitor de e-book Amazon Kindle. A interface de programação de aplicativos (API) C++ do WebKit fornece um conjunto de classes para exibir o conteúdo da Web em janelas e implementa recursos do navegador, como seguir links quando clicado pelo usuário, gerenciar uma lista de retrocesso e gerenciar um histórico de páginas visitadas recentemente.

Exemplo 1: Executando o código JavaScript usando o console: Para o mecanismo Nashorn, o Java 8 introduziu uma nova ferramenta de linha de comando, iejjl. Temos que seguir as etapas abaixo para executar o código JavaScript por meio do console:

  • Crie um arquivo chamado com geeksforgeeks.js.
  • Abra geeks.js, escreva o código a seguir no arquivo e salve-o.
<script>
  
var gfg= function(){
    print("Welcome to Geeksforgeeks!!!");
};
gfg();
  
</script>

Saída:

Welcome to Geeksforgeeks!!!

Exemplo 2: Executando o arquivo JavaScript incorporando o arquivo JavaScript no código Java com a ajuda da classe ScriptEngine: Com a ajuda da classe ScriptEngine, podemos criar um mecanismo JavaScript e, com o mecanismo JavaScript, podemos executar o arquivo 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!!!')");
    }
}

Saída: 

Você pode obter um erro de tempo de execução como

Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK

Isso ocorre porque o Nashorn será substituído pelo GraalVM.

 GraalVM :   é um tempo de execução de alto desempenho que melhora o desempenho e a eficiência do aplicativo. Ele é projetado para aplicativos escritos em várias linguagens de programação, como Java, JavaScript, linguagens baseadas em LLVM, como C e C++, e outras linguagens dinâmicas. Ele remove o isolamento entre as linguagens de programação e permite a interoperabilidade em um tempo de execução compartilhado