HTML Diff
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>