Что такое ECMAScript?

Об истории JavaScript

JavaScript (сокращенно JS) создан в 1995 г. в компании Netscape. По инициативе компании Netscape была проведена стандартизация языка ассоциацией ECMA, которая занимается стандартизацией информационных технологий. Так появился стандарт ECMAScript, сокращенно его называют ES. Стандарт описывается документом ECMA-262.

Отличие JavaScript от ECMAScript

ECMAScript это стандарт, а JavaScript его реализация. ECMAScript говорит как должно быть, а JavaScript выполняет то, что говорит ECMAScript.

Кроме JavaScript существуют другие реализации стандарта: SpiderMonkey, V8 и ActionScript. Стоит отметить, что реализация JavaScript может не соответствовать стандарту, в чём убедились сотни тысяч разработчиков при работе с Internet Explorer старых версий.

Версии ECMAScript

У стандарта есть несколько версий. Первоначально они назывались порядковыми номерами, начиная с 2015 года договорились вместо порядкового номера указывать год, так как новая версия стандарта начала выходить ежегодно.

  • ES1 — 1997 год
  • ES2 — 1998 год
  • ES3 — 1999 год
  • ES5 — 2009 год
  • ES2015 — 2015 год
  • ES2016 — 2016 год
  • ES2017 — 2017 год

Стандарт ES4 не был принят. Широко встречаются стандарты ES6, ES7, ES8. Так аксакалы любят называть стандарты по старинке: ES2015 называют ES6, ES2016 - 7 и так далее.

ECMAscript выходит ежегодно; первые пакеты обновления назывались ES1, ES2, ES3, ES4, ES5; новые выпуски (начиная с 2015 года) получили название ES2015, ES2016, ES2017 (аббревиатура ES + год выпуска); ECMAScript является стандартом, а JavaScript — это самая популярная реализация этого стандарта. Среди других реализаций можно отметить SpiderMonkey, V8 и ActionScript.


По мотивам JavaScript — WTF is ES6, ES8, ES 2017, ECMAScript… ?

Похожие записи

Поисковый запрос с помощью RxJS

Показательная и востребованная задача. Получение набираемого запроса из поля ввода через полсекунды после того, как пользователь закончил ввод с показом лоадера.

RxJS. Delay from array

import { of, from } from 'rxjs'; 
import { map, concatMap, delay } from 'rxjs/operators';

from([2,4,6,8]).pipe(
  concatMap(item => of(item).pipe(delay(1000)))
).subscribe(console.log);