Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: json, serialization

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

Этот вопрос проверяет знание скрытых ограничений JSON-копирования и возможных багов.

Короткий ответ

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

Длинный ответ

Несмотря на популярность, JSON-копирование имеет много подводных камней.

Потеря типов данных

При сериализации теряются:

  • function

  • undefined

  • Symbol

const obj = {
  a: 1,
  fn: () => {},
  value: undefined
};

// fn и value исчезнут

Проблемы со специальными объектами

Некоторые типы преобразуются некорректно:

  • Date превращается в строку

  • Map и Set теряются

  • RegExp становится пустым объектом

Циклические ссылки

Если объект содержит ссылку сам на себя, возникнет ошибка:

const obj = {};
obj.self = obj;

// TypeError: Converting circular structure to JSON

Потеря прототипов

После копирования:

  • объект теряет свой прототип

  • методы класса недоступны

  • объект становится обычным Object

Когда это критично

JSON-копирование опасно, если:

  • объект содержит бизнес-логику

  • используются классы или даты

  • важна точная структура данных

Краткий вывод

JSON.stringify подходит только для простых данных.
Для сложных структур лучше использовать специализированные методы копирования.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#json

#serialization

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию