Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как реализовать глубокое копирование объекта без использования JSON.stringify и StructuredClone? Какие сложности могут возникнуть?
Глубокое копирование можно реализовать с помощью рекурсивной функции, которая вручную создает новый объект или массив и копирует все его свойства. Для каждого свойства, если оно является объектом, функция вызывает сама себя. Основные сложности: обработка циклических ссылок (когда объект ссылается сам на себя), копирование специальных объектов (как Date, Map, Set) и поддержка различных типов данных.
В чем разница между Object.assign и копированием через JSON.stringify / JSON.parse?
Object.assign делает поверхностное копирование объекта.JSON.stringify / JSON.parse выполняет глубокое копирование, но с серьёзными ограничениями.
При использовании JSON теряются функции, undefined, Symbol и специальные типы данных.
Также JSON не умеет работать с циклическими ссылками.
Какие проблемы есть у JSON.stringify при копировании объектов?
JSON.stringify не умеет работать со всеми типами данных JavaScript.
Он удаляет функции, undefined, Symbol и методы объектов.
Также он не поддерживает циклические ссылки и специальные объекты вроде Date или Map.
Из-за этого результат копирования может отличаться от исходного объекта.
Что такое structuredClone и чем он отличается от JSON.stringify?
structuredClone — это встроенный API для глубокого копирования объектов.
Он корректно копирует многие типы данных, которые не поддерживает JSON.stringify.structuredClone умеет работать с циклическими ссылками.
При этом он сохраняет структуру данных без преобразования в строку.
Рейтинг:
1
Сложность:
9
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
6
Рейтинг:
3
Сложность:
7