Javascript как язык бездействовал несколько лет, но теперь новая версия языка будет выпускаться каждый год. Javascript в настоящее время является постоянно развивающимся языком, и транспиляторы никуда не денутся, чтобы позволить нам использовать эти функции уже сегодня.
Что такое транспайлер?
Транспайлер — это инструмент, который читает код и выводит эквивалентный код, написанный на другом языке.
ES2015
Если вы не слышали об этом раньше, ES2015 — это название последней версии javascript. Возможно, вы также видели термин ES6 раньше, но оба они относятся к одной и той же версии javascript, выпущенной 17 июня 2015 года. отныне будет называться «ES + год» последнего утвержденного стандарта.
Как будут выходить новые функции
Новые функции, предлагаемые для новых версий javascript, проходят 5 этапов:
0 - Соломенный человек: Идея;
1 - Предложение: Работа над ним;
2 - Проект: Начальная спецификация;
3 - Кандидат: полная спецификация;
4 - Готово: будет добавлено в следующий выпуск;
Почему транспилятор
Транспиляторы позволяют нам использовать последнюю версию javascript, не дожидаясь, пока поставщики браузеров реализуют новые предлагаемые функции.
Транспиляция Javascript с помощью Babel
Babel — самый популярный транспилятор javascript на сегодняшний день.
Он в основном принимает javascript и возвращает javascript на основе набора параметров, которые вы ему передаете.
//ES2015 arrow function (param1, param2, paramN) => { return statements } //Babel transpiled output "use strict"; (function (param1, param2, paramN) { return statements; });
Стоимость транспиляторов
Использование блестящего и новейшего обходится дорого, система сборки является обязательным шагом, который может добавить некоторые накладные расходы при запуске проекта, а транспилированный код будет тяжелее, чем его исходный аналог, а отладка может быть сложнее, особенно в производственных средах.
Используйте только функции этапа 3 или выше в рабочей среде.
Babel и другие транспиляторы поддерживают функции ниже финальной стадии или ниже стадии 4. Поддержка этих функций предназначена для того, чтобы дать разработчикам возможность опробовать эти новые функции и получить отзывы от сообщества. Они не предназначены для использования в рабочей среде, поскольку они могут сильно изменяться, и вы застрянете с неподдерживаемая функция в вашей кодовой базе.
Если вы используете функцию стадии ‹4, вы рискуете, что она изменится до того, как она попадет в рабочую среду, и вы застрянете с неподдерживаемой функцией в своей кодовой базе.
Дальнейшие выпуски
Es2015 был самым большим выпуском языка javascript, и ожидается, что дальнейшие выпуски будут намного меньше. ES2016 состоит всего из 2 функций: Array.prototype.includes
и Оператор возведения в степень.
Транспиляторы здесь, чтобы остаться
В сообществе javascript много путаницы в отношении того, что является частью какой версии javascript и какие функции безопасны для использования, а также есть много статей, в которых упоминаются функции ранней стадии как часть версии javascript в следующем году, остерегайтесь этого.
Вы можете проверить все активные предложения по новым возможностям javascript по адресу:
https://github.com/tc39/proposals
Готовые предложения и ожидаемые даты выпуска:
https://github.com/tc39/proposals/blob/master/finished-proposals.md
Транспиляторы никуда не денутся, поэтому важно иметь представление о том, как они работают, и если вы хотите использовать последнюю версию javascript сегодня, убедитесь, что то, что вы используете, действительно будет реализовано в браузере.
Хороший путь — убедиться, что вы можете отправить свой код без шага транспиляции в браузер как можно скорее.