Table of Contents

About

Javascript Interpreter (JavaScript engine) is a software which interprets and executes JavaScript code.

Javascript can run in two different environment:

If the javascript script has no dependencies to the DOM, it can be run in a non-browser JavaScript environment.

The JavaScript engine actually compiles the program on the fly and then immediately runs the compiled code.

Type

Browser (UI)

Although there are several uses for a JavaScript engine, it is most commonly used in web browsers. The developer tools of the browsers have a javascript interpreter that you find mostly in the console

Non-Browser (Cli) (Server / Desktop)

C:

Java:

  • nashorn: Java Embedded Script Engine in the JDK. Nashorne Jjs (Javascript on JVM). See Idea debug
  • graaljs (by default on graal but may run on jdk 1)
  • J2v8 - set of Java bindings for Google’s popular JavaScript engine, V8.
  • Rhino - The Mozilla JavaScript Engine is named “Rhino”. Rhino is implemented in Java.

Chrome:

??

  • SpiderMonkey
  • Chakra

Javascript Compatibility

All engine does not necessarly implement all statement of javascript.

This project compat-table helps you better understand the statement supported by the javascript engine.

Management

Get

if (typeof document !== 'undefined') {
  // We are in a browser context
} else {
  // We are in a non-browser context (node,..)
}

where: Browser - Document variable (DOM) - Javascript