0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Объекты в реальных приложениях часто имеют сложную структуру. Объекты, вложенные в объекты, которые вложены в объекты и так далее. Использовать глубоко вложенные объекты напрямую неудобно, если такое использование требует повторных обращений:</p>
1
<p>Объекты в реальных приложениях часто имеют сложную структуру. Объекты, вложенные в объекты, которые вложены в объекты и так далее. Использовать глубоко вложенные объекты напрямую неудобно, если такое использование требует повторных обращений:</p>
2
<p>Разработчики стараются сократить такой код и создают промежуточные константы для вложенных данных:</p>
2
<p>Разработчики стараются сократить такой код и создают промежуточные константы для вложенных данных:</p>
3
<p>Чем больше обращений к вложенным данным, тем полезнее эта техника. Но само извлечение данных может стать громоздким, если этих данных много. Пример из реальной жизни:</p>
3
<p>Чем больше обращений к вложенным данным, тем полезнее эта техника. Но само извлечение данных может стать громоздким, если этих данных много. Пример из реальной жизни:</p>
4
<p>Это данные вымышленного приложения представленные в виде формата<a>jsonapi</a>. Он, например, используется на Хекслете для взаимодействия серверной и клиентской части сайта. Внутри клиента эти данные извлекаются и выводятся на экран. Представьте себе, как бы мог выглядеть код извлечения внутренностей этой структуры:</p>
4
<p>Это данные вымышленного приложения представленные в виде формата<a>jsonapi</a>. Он, например, используется на Хекслете для взаимодействия серверной и клиентской части сайта. Внутри клиента эти данные извлекаются и выводятся на экран. Представьте себе, как бы мог выглядеть код извлечения внутренностей этой структуры:</p>
5
<p>Чем больше данных нужно извлечь и чем они глубже расположены, тем больше однообразного и повторяющегося кода придется написать. В принципе, в этом нет никакого криминала и раньше так жили все. Но с развитием языка появилась возможность сделать код гораздо лучше.</p>
5
<p>Чем больше данных нужно извлечь и чем они глубже расположены, тем больше однообразного и повторяющегося кода придется написать. В принципе, в этом нет никакого криминала и раньше так жили все. Но с развитием языка появилась возможность сделать код гораздо лучше.</p>
6
<p>Деструктуризация (destructuring) - специальный синтаксис, позволяющий извлекать части из составных данных. Это удобный способ раскладывать объекты на части. Он позволяет сократить код и сделать его более понятным.</p>
6
<p>Деструктуризация (destructuring) - специальный синтаксис, позволяющий извлекать части из составных данных. Это удобный способ раскладывать объекты на части. Он позволяет сократить код и сделать его более понятным.</p>
7
<p>Деструктуризация похожа на создание объекта. Абсолютно тот же самый синтаксис, но теперь не для создания объекта, а для разложения его на части. Деструктуризация позволяет раскладывать объект по частям, то есть не обязательно извлекать все части сразу. В примере выше у объекта три свойства, но извлекаются только два. Порядок описания свойств при извлечении не важен.</p>
7
<p>Деструктуризация похожа на создание объекта. Абсолютно тот же самый синтаксис, но теперь не для создания объекта, а для разложения его на части. Деструктуризация позволяет раскладывать объект по частям, то есть не обязательно извлекать все части сразу. В примере выше у объекта три свойства, но извлекаются только два. Порядок описания свойств при извлечении не важен.</p>
8
<p>При деструктуризации можно менять имена. Такое бывает нужно, если подобная константа уже определена выше.</p>
8
<p>При деструктуризации можно менять имена. Такое бывает нужно, если подобная константа уже определена выше.</p>
9
<p>В случае отсутствия свойств в объекте, деструктуризация позволяет задавать значения по умолчанию для таких свойств:</p>
9
<p>В случае отсутствия свойств в объекте, деструктуризация позволяет задавать значения по умолчанию для таких свойств:</p>
10
<p>Деструктуризация может быть вложенной. Она позволяет извлекать части объектов на любую глубину. Поэтому наш пример выше можно переписать так:</p>
10
<p>Деструктуризация может быть вложенной. Она позволяет извлекать части объектов на любую глубину. Поэтому наш пример выше можно переписать так:</p>
11
<p>У spread оператора есть похожий, но выполняющий обратное действие оператор, называемый rest. С его помощью во время деструктуризации можно собрать все оставшиеся свойства в один объект:</p>
11
<p>У spread оператора есть похожий, но выполняющий обратное действие оператор, называемый rest. С его помощью во время деструктуризации можно собрать все оставшиеся свойства в один объект:</p>
12
<p>Деструктуризация хоть и не является обязательным элементом и она не влияет на архитектуру программ, но ее использование делает код чище и понятнее (если не увлекаться глубиной).</p>
12
<p>Деструктуризация хоть и не является обязательным элементом и она не влияет на архитектуру программ, но ее использование делает код чище и понятнее (если не увлекаться глубиной).</p>