Новые и готовящиеся функции JavaScript ES2019

Новые и готовящиеся функции JavaScript ES2019

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

Некоторые из этих функций уже доступны в Node, Chrome, Firefox и Safari, в то время как другие все еще находятся на стадии предложения.

Опциональные цепочки

Опциональные цепочки реализуются с помощью оператора «?.». Это прежде всего гарантирует, что предыдущее значение перед знаком вопроса не будет ни неопределенным, ни нулевым. Это действительно полезно при оценке свойств глубоко вложенных объектов.

Необходимо убедиться, что оператор «?.» существует, прежде чем оценивать свойства. Рассмотрим следующий пример:

Давайте рассмотрим второго пользователя в массиве пользователей:

Мы можем захотеть получить адрес офиса этого пользователя. До появления оператора опциональных цепочек нам пришлось бы выполнить относительно неэффективный процесс для получения этой информации:

Если бы у нас был глубоко вложенный объект, мы должны были бы проверить, существует ли его значение, используя оператор && на каждом уровне. Но с опциональными цепочками мы просто делаем следующее:

Мы также можем использовать это для методов объектов, чтобы проверить их существование перед выполнением:

Он просто вернется undefined, если метод с данным именем не существует в объекте.

Поскольку оператор опциональных цепочек еще не добавлен в спецификацию JavaScript, он все еще находится на стадии предложения. Вы можете использовать его сегодня с плагином babel-plugin-offer-Additional-Chaining.

Опциональная привязка перехвата

Эта функция пригодится, когда мы заранее знаем, какой будет ошибка, и не хотим вводить избыточные неиспользуемые переменные. Рассмотрим традиционный блок try and catch:

Но с добавлением опциональной привязки перехвата нам не нужно предоставлять неиспользуемые переменные — особенно когда у нас есть значения по умолчанию для блока try.

Оператор конвейера

Это одно из предложенных дополнений к Javascript, и в настоящее время оно находится на стадии 1. Это существенно помогает сделать несколько вызовов функций для одного и того же аргумента доступными для чтения.

Это делается путем передачи значения выражения в качестве аргумента(ов) функции. Попробуйте вызвать следующие функции без оператора конвейера |>.

Но с оператором конвейера читаемость может быть значительно улучшена:

String.trimStart и String.trimEnd

Это формально называлось trimRight и trimLeft, но в ES2019 имена были изменены на псевдонимы trimStart и trimEnd, чтобы сделать их более понятными для пользователей. Рассмотрим следующий пример:

Object.fromEntries

Прежде чем говорить о Object.fromEntries, важно рассмотреть о Object.entries. Метод Object.entries был добавлен в спецификацию ES2017, чтобы обеспечить способ преобразования объекта в эквивалент его массива, предоставляя ему доступ ко всем методам массива для обработки. Рассмотрим следующий объект:

Теперь мы можем использовать для массивов метод filter, чтобы получить разработчиков, которые имеют опыт работы более 5 лет:

Теперь возникает проблема: у нас нет простого способа преобразовать результаты обратно в объект. Обычно мы пишем собственный код, чтобы преобразовать его обратно в объект:

Но с введением Object.fromEntries мы можем сделать это одним движением:

flat

Часто у нас есть глубоко вложенные массивы для обработки в результате вызова API. В этом случае особенно важно сгладить массив. Рассмотрим следующий пример:

Переменная allstacks содержит глубоко вложенные массивы. Чтобы сгладить этот массив, мы можем использовать Array.prototype.flat:

Из вышесказанного можно сделать вывод, что массив сглажен на один уровень глубиной, что является аргументом по умолчанию для array.prototype.flat.

Мы можем передать аргумент плоскому методу, чтобы определить степень, до которой мы хотим сгладить массив.

Значение аргумента по умолчанию — 1. Чтобы полностью сгладить массив, мы можем передать аргумент Infinity. Аргумент Infinity сглаживает массив полностью, независимо от его массива:

FlatMap

FlatMap представляет собой комбинацию вызова метода map и метода flat с глубиной 1. Часто это очень полезно, поскольку делает то же самое очень эффективным образом. Ниже приведен простой пример использования map и flatMap:

Заключение

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

Ниже приведено несколько новых функций, которые мы не рассмотрели: JSON.stringify, Sort stability.

Автор: Gbolahan Olagunju

Источник: //blog.logrocket.com

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: