Теперь, когда отсутствует список функций для ES2016, также известного как ES7, и фактически не включающий ни одной из функций, о которых большинство говорят, официально пора просто прекратить использование ES7 в значении любая предлагаемая функция, которая может, а может и не дожить .

Давайте сначала определим пару вещей:

ES = ECMAScript = спецификация, реализацией которой фактически является JavaScript.

TC39 = люди, которые пишут спецификацию ECMAScript.

Как мы сюда попали

Эта проблема понятна. Когда впервые появилась новость о том, что мы наконец-то получим дополнения к языку JavaScript, люди были в восторге. Чтобы полностью понять процесс, вам нужно знать несколько вещей.

Первое из таких обновлений претерпело многочисленные изменения названия. ES.next, Harmony, ES6, наконец, приземлились на Es2015. В основном это произошло из-за времени, которое потребовалось для окончательной доработки ES2015 - 4+ года. По мере того, как цели и масштабы менялись, в конечном итоге стало понятно, что вместо того, чтобы иметь произвольное количество времени на создание новой версии, они должны выпускать новую версию каждый год.

Вместо ES6, ES7, ES8 и т. Д. Они будут выпускать новую версию каждый год: ES2015, ES2016, ES2017 и т. Д. Теоретически это снизит давление на TC39, поскольку всегда есть следующий год, а также облегчая браузерам реализацию этих изменений, поскольку они будут происходить по более предсказуемому графику и, что наиболее важно, будут меньше по объему, за исключением ES2015, который довольно велик.

Как тогда мы их называем?

Вы можете задать естественный вопрос: как вы называете эти функции, которые были предложены, но еще не вошли в какую-либо окончательную спецификацию? Лично я считаю, что их следует называть так, как они есть, «предлагаемыми функциями» для непрофессионала, но иногда бывает полезно определить, где они находятся в процессе разработки.

Этапы

С циклом выпуска новой спецификации последовал этапный процесс для отдельных функций ». Все изменения и функции проходят этапы 0–4, наиболее примечательным из которых является то, что функции этапа 0 в основном означают не сразу отвергнуты сразу (также известный как соломинка), а этап 4 означает, что функция окончательная и готова к включению в спецификации того года. . Это означает, что важно отметить, что на любом этапе этапа функция может быть полностью удалена. Неважно, насколько сообщество полагается на это с помощью транспиляторов или полифилов, и функция, которую опускают среди споров, не лишена приоритета.

Несмотря на то, что еще будет некоторый переходный период, обращение к функции по этапам полезно для выделения функций, о которых можно было бы неплохо мечтать, но на которые неразумно полагаться. Это также часто бывает чрезвычайно полезно, поскольку кто-то, увидев вашу статью, доклад, учебное пособие и т. Д. Позже, может увидеть, о какой версии этой функции вы имеете в виду. Статья, объясняющая, как функция X работает на стадии 0, может быть в корне неверной относительно того, как она работает к тому времени, когда она достигает стадии 4.

В качестве примера вы можете сказать декораторы этапа-1, что является важным уточнением, поскольку спецификация декораторов изменилась довольно заметно после этапа-0!

Заключение

Пожалуйста, перестаньте называть предлагаемые функции JavaScript ES7: D