Какая связь между ES6, ES7 (и более), ES2015, этап 0, этап 1 (и более)?
В последнее время я путаюсь между следующими терминами в статьях о "новомодном" JavaScript:
- ES6
- ES7 (и иногда, хотя редко, ES8 и больше)
- ES2015 (а иногда и ES2016 и больше)
- Этап-0 (и этап-1 и больше)
Похоже, что некоторые из них являются подмножеством других функций, но я не совсем понимаю, какие из них являются подмножествами.
2 ответа
Справедливо, это немного сбивает с толку.:-)
Четырехзначные числа - это годы, остальные - спецификации.
ES2015 - это ES6. Это сокращение от ECMAScript 2015, которое является официальным названием языка, которое определено в 6-м издании спецификации (отсюда и "ES6"). Из спецификации:
Стандарт ECMA-262
6-е издание / июнь 2015
ECMAScript® 2015 Спецификация языка
Аналогично, ES2016 - это ES7:
Стандарт ECMA-262
7ᵗʰ издание / июнь 2016
ECMAScript® 2016 Спецификация языка
2015 был первым разом, когда они поместили год в название языка. Предыдущая спецификация, 5.1 в 2011 году, была просто "Спецификацией языка ECMAScript®". Итак, вы услышите ES5.1 (опубликовано в июне 2011 г.) ES5 (опубликовано в декабре 2009 г.) и ES3 (опубликовано в декабре 1999 г.). (Не было ES4.)
Этап 0 и т. Д. Относится к этапу предложений по улучшению языка, которые рассматриваются на этой странице github, управляемой комитетом TC-39, ответственным за язык. Процесс улучшения выложен на этой странице из TC-39:
0 - Strawman
1 - Предложение
2 - Черновик
3 - Кандидат
4 - Закончено
... и как только он достигнет стадии 4, он будет указан здесь вместе со спецификацией, в которой он должен быть. Например, асинхронные функции достигли стадии 4 и будут в ES2017.
TC39 разбивает предложения на 4 этапа:
- Этап-0 - Strawman: просто идея.
- Этап 1 - Предложение: над этим стоит поработать.
- Этап-2 - Проект: начальная спецификация.
- Этап-3 - Кандидат: полная спецификация и начальная реализация браузера.
- Этап 4 - Закончено: будет добавлено к следующему ежегодному выпуску.
Кроме того, проверьте текущие предложения TC39