Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

Подпишись на React Developer в телеграм

Вопросы React Frontend Developer


Как реализовать глубокое копирование объекта без использования JSON.stringify и StructuredClone? Какие сложности могут возникнуть?

В чем разница между Object.assign и копированием через JSON.stringify / JSON.parse?

Какие проблемы есть у JSON.stringify при копировании объектов?

Что такое structuredClone и чем он отличается от JSON.stringify?

Можно ли глубоко скопировать объект через JSON.parse(JSON.stringify(...))? Какие у этого способа ограничения?

  • Рейтинг:

    1

  • Сложность:

    9

Глубокое копирование можно реализовать с помощью рекурсивной функции, которая вручную создает новый объект или массив и копирует все его свойства. Для каждого свойства, если оно является объектом, функция вызывает сама себя. Основные сложности: обработка циклических ссылок (когда объект ссылается сам на себя), копирование специальных объектов (как Date, Map, Set) и поддержка различных типов данных.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Object.assign делает поверхностное копирование объекта.
JSON.stringify / JSON.parse выполняет глубокое копирование, но с серьёзными ограничениями.
При использовании JSON теряются функции, undefined, Symbol и специальные типы данных.
Также JSON не умеет работать с циклическими ссылками.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    6

JSON.stringify не умеет работать со всеми типами данных JavaScript.
Он удаляет функции, undefined, Symbol и методы объектов.
Также он не поддерживает циклические ссылки и специальные объекты вроде Date или Map.
Из-за этого результат копирования может отличаться от исходного объекта.

Подробнее
  • Рейтинг:

    3

  • Сложность:

    7

structuredClone — это встроенный API для глубокого копирования объектов.
Он корректно копирует многие типы данных, которые не поддерживает JSON.stringify.
structuredClone умеет работать с циклическими ссылками.
При этом он сохраняет структуру данных без преобразования в строку.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    3

Да, можно, но с ограничениями. Метод не копирует функции, undefined, Symbol, специальные значения NaN, Infinity, -Infinity (преобразуются в null), а также не работает с циклическими ссылками и некоторыми встроенными объектами (Date становится строкой, Map/Set — пустыми объектами).
Подробнее