Делаем код чище с помощью деструктуризации объектов в JavaScript
Рассказываем, как уменьшить количество кода с помощью нового синтаксиса деструктуризации объектов и массивов в JavaScript.
10К открытий10К показов
В этой статье мы сравним традиционный подход и использование нового синтаксиса деструктуризации объектов в JavaScript стандарта ES6. Этот синтаксис позволяет распаковать значения из сложных объектов и массивов. Его можно использовать для того, чтобы сделать код чище и лаконичнее.
Сначала мы обсудим деструктуризацию объектов, а затем перейдём к массивам.
Деструктуризация объектов в JS
Для примера возьмём объект, содержащий простые свойства и вложенные объекты, с данными о покупателе:
Базовое присваивание
Традиционный подход для получения данных объекта — использовать точку или квадратные скобки:
Это можно сделать одной строкой кода:
Мы также можем изменить имя переменной:
Присваивание объявленным переменным
Для этого нужно использовать круглые скобки:
Круглые скобки в данном случае нужны потому, что { слева воспринимается как блок, а не литерал объекта. Без скобок мы получим ошибку:
Вложенные объекты
Мы можем получать вложенные свойства по одному:
С помощью деструктуризации объекта в JS этот код можно записать в одну строку:
Деструктуризация со значениями по умолчанию
Допустим, у объекта customer есть булево поле married, которое может не иметь значения. Без деструктуризации проверка на наличие значения может выглядеть так:
С помощью деструктуризации можно сделать это в одну строку:
Оставшиеся параметры
С помощью многоточия и любого имени переменной мы можем получить оставшиеся параметры, которые не были указаны. Для них обычно используют имя rest:
Обработка null-объектов
Если мы попытаемся деструктурировать null-объект, то получим ошибку. Этого можно избежать:
С помощью оператора ИЛИ мы заменили null пустым объектом.
Деструктуризация аргументов функции
Мы можем деструктурировать объекты, переданные в функцию. Сначала посмотрим, как это работает без деструктуризации:
А так выглядит деструктуризация параметров функции:
Деструктуризация массивов в JS
Синтаксис, который мы использовали для деструктуризации объектов, можно применять и к массивам. Кроме того, деструктуризация массивов имеет интересные особенности. Для их демонстрации будем использовать массив фруктов:
Доступ к элементам массива через деструктуризацию будет выглядеть так:
Пропуск и получение остальных элементов
Чтобы пропустить ненужный элемент массива используется запятая:
Деструктуризация в JS с заменой элементов
10К открытий10К показов