ECMA-262, ou ECMAScript Language Specification, define a linguagem ECMAScript.[3] ECMA-262 especifica apenas a sintaxe da linguagem e a semântica da Interface de programação de aplicações base, tais como Array, Function, and globalThis, enquanto implementações válidas do JavaScript adicionam sua própria funcionalidade como entrada/saída e manipulação do sistema de arquivos.
A Netscape submeteu as especificações do JavaScript para padronização na organização padronizadora ECM International for Standardization; resultando assim no novo padrão ECMAScript, o trabalho na especificação ECMA-262 começou em novembro de 1996 e, sua primeira edição foi adaptada pela ECMA General Assembly em junho de 1997.[4]
ECMAScript é uma especificação de linguagem de scripts padronizada pelo ECMA-262. As linguagens JavaScript, JScript e ActionScript seguem a ECMAScript, porém cada um provê recursos adicionais não descritos na especificação ECMA.
Versões
ES6 ou ES2015
A edição ECMAScript6 (ES6 ou ES2015) adiciona nova sintaxe para escrever aplicativos complexos (como classes e módulos), mas os define semanticamente nos mesmos termos que o modo estrito.[1] Outros recursos incluem iterações e repetições for/of, funções de seta/arrow, dados binários, arrays digitados, coleções (mapas e conjuntos), promessas, e aprimoramentos matemáticos.[5]
ES7 ou ES2016
A edição ECMAScript7 (ES7 ou ES2016) do padrão pretende continuar a reforma da linguagem, com isolamento de código, controle de efeitos e habilitação de biblioteca, operador de exponenciação (**), e Array.prototype.includes.[6]
ES8 ou ES2017
A edição ECMAScript8 n(ES8 ou ES2017) incluem recursos de simultaneidade e atômica, transferência de dados binários de cópia zero, aprimoramentos matemáticos, integração sintática com promessas (aguardar / assíncrono), fluxos observáveis, tipos de SIMD (método de operação de computação paralela), melhoria da meta-programação com classes, propriedades de classe e instância, sobrecarga de operador, tipos de valor, registros, tuplas and traits.[7]