Let's take a step back....
Language Definition
(Standards)
Compiler or
Interpreter
Source Code
(plain text)
Compilers/Interpreters take source code (plain text) and produce executable programs. The way to interpret the source code into executable programs is provided in the language definition.
Language Definition
(Standards)
Compiler or
Interpreter
Source Code
(plain text)
Language Definition
"Compiler or Interpreter"
Source Code
(plain text)
Javascript refers to a runtime environment that is built on top of an ECMAScript engine
Runtime Environment
Each version of a runtime environment is built off a particular version of an ECMAScript engine.
Each version of an ECMAScript engine is built to a particular version of ECMAScript
Runtime Environment
ES 2009
ES 2015
ES 2017
Google V8
JSCore/Nitro
NodeJS
Google Chrome
Safari
etc....
etc....
etc....
Google's V8 Engine is an open-source Javascript execution engine, a part of the Chromium project. It can run standalone, or can be embedded and extended into any C++ application as a library. V8 is just a compiler+vm toolset, it does not have I/O and APIs built in.
V8 parses, interprets, executes and compiles Javascript code. It is shipped ONLY with the APIs that the ECMAScript Standard specifies.
NodeJS is a javascript runtime, with easy to use command-line capabilities, that is built on Chrome's V8 Javascript engine.
V8 only provide the core parsing and compiling, but features such as the async event loop/queue are built on top as part of NodeJS.
NodeJS also ships with I/O APIs for network, file system operations, and the concept of modules.
A web browser is a HTML & CSS document renderer for client-side user interfaces.
The Javascript V8 engine is a small but critical part of a web browser that allows for the execution of Javascript. The primary purpose of Javascript execution in web browsers is to: