ECMAScript is a standard general-purpose programming language that is conformed by Javascript and some other languages. It is the scripting language that formed the basis of browser-based Javascript and Node.js. ECMA is an acronym for European Computer Manufacturer’s Association, which develops standards for information technology and consumer electronics. Languages such as JavaScript, Dart-lang, and C# were standardized by ECMA.
Think of ECMAScript as Javascript without a host environment. Javascript has two major environments: browsers and Node.js. These environments add some APIs to the language. An example is the window
object on Browsers and the fs
module in Node.js. If you strip all external APIs from these environments, you get ECMAScript.
The code block below shows some core features of ECMAScript:
// Core ECMAScriptconst student_name = "Hermione Granger";const age = 12;let fromHogwarts = falseif (student_name === "Hermione Granger"){fromHogwarts = true}
When used in the browser, it becomes browser-side Javascript.
The original specification for the language was written by Brendan Eich at Netscape. The language was implemented in Netscape Navigator 2.0 and was called Livescript. ECMA International started the development of the first edition in 1996. There were 2 other implementations, ES2 and ES4, after the first. The 5th implementation, ES5, is the defacto standard of the language.
The 6th edition of ECMAScript created waves in the industry and led to the wide adoption of Javascript by web developers. ES6 was a 15-year effort that started in 1999 and got published in 2015. It included exciting new features such as rest
and spread
operators, classes, and template strings.
ESNext is the next version of ECMAScript at the time of writing. The current ESNext is ES2021, which will be fully published before the end of 2021. ESNext features are proposals that haven’t been finalized yet. When these proposals are finalized, they become new ECMAScript features.
The proposal of proposal development and feature addition is handled by Technical Community 39 (TC39) of ECMA International. TC39 is a group of Javascript developers, industry professionals, and academics that maintain and define new standards of ECMAScript.