ECMAScript 2018 завершен


Что нового в JavaScript / ES2018? Немного, но следите за тем, что происходит, иначе это может стать неожиданностью.

Хотя новый процесс TC39, который продвигает новые функции JavaScript через фабрику утверждения по одной, делает ежегодный выпуск менее важным, он все же производит ряд изменений, которые мы можем обсудить. Да, это уже ES2018.

Итак, что нового?

Ничего особенного, и это хорошо, а не плохо. К настоящему времени JavaScript должен стать зрелым языком, и после огромных изменений в ES2015 нам понадобится некоторая стабильность.

Вероятно, наиболее важной из новых функций является асинхронная итерация. Синхронная итерация, представленная в ES2015, позволяет писать:

var array = [1,2,3]; for (пусть значение массива) {console.log (value);}

Новая функция расширяет это до длительных асинхронных операций с использованием await:

для ожидания (пусть значение getValueAsync () {console.log (value);}

который не блокирует поток пользовательского интерфейса во время ожидания асинхронного итератора. Конечно, вы можете создавать свои собственные асинхронные итерации. Единственная проблема заключается в том, что эта функция пока широко не поддерживается, но все движки JavaScript обновляются, чтобы включить ее.

Следующей важной функцией, вероятно, является оператор распространения остатка, и вы можете быть прощены за то, что подумали, что это уже было в JavaScript. Остальной оператор работает в ES2015 на массивах, а теперь в ES2018 на объектах. Если вы деструктурируете объект, вы теперь можете добавить …, чтобы сигнализировать, что все оставшиеся свойства должны быть упакованы в конечную переменную. Например:

пусть {x, y, … z} = {x: 1, y: 2, a: 3, b: 4};

сохраняет 1 в x, 2 в y и {a: 3, b: 4} в z, то есть остальную часть объекта. Аналогичным образом оператор распространения теперь работает в объектах:

пусть n = {x, y, … z};

возвращает нас к нашему исходному объекту {x: 1, y: 2, a: 3, b: 4}

У нас также есть некоторые новые функции в регулярных выражениях: именованные группы захвата, экранирование свойств Unicode, утверждения просмотра назад и флаг s (dotAll). В JavaScript некоторое время были пронумерованные группы, но теперь вы можете назначить идентификатор и использовать этот идентификатор в обратной ссылке и т. Д. Экраны свойств Unicode расширяют классификацию символов до свойств Unicode, таких как греческие символы, Currency_Symbol и так далее. Утверждения просмотра назад являются обобщением утверждений просмотра вперед и, вероятно, сделают регулярные выражения еще более трудными для понимания!

Наконец-то у нас есть.

Ну, обещай. Наконец, если быть точным. Как мы сообщали о выпуске Firefox 58, теперь вы можете использовать метод Promise finally для запуска кода независимо от того, как выполняется решение Promise.

Чего нам ждать от ES2019?

Из предложений, близких к завершению, идея добавления 64-битных целых чисел, вероятно, будет наиболее полезной. Если вы хотите использовать JavaScript как язык на основе классов, вам также могут понравиться общедоступные и частные поля — просто добавьте # перед именем свойства, и оно станет закрытым. Он может быть обратно совместимым, но он вводит сигил в JavaScript, и ему следует сопротивляться только по этой причине.

Ян Эллиот — автор книг JavaScript Async и Just JavaScript: An Idiomatic Approach (I / O Press)


Добавить комментарий