Встречается на собеседованиях • сегодня

Какие особенности копирования через JSON

Копирование через JSON.stringify и JSON.parse имеет несколько ограничений:

  1. Теряются функции – методы объектов не копируются, так как JSON не поддерживает функции.
  2. Пропадают специальные типыDate, RegExp, Map, Set, undefined и Infinity преобразуются в null или строки.
  3. Циклические ссылки – вызовет ошибку, так как JSON не поддерживает циклические структуры.
  4. Symbol-ключи – игнорируются, так как JSON поддерживает только строковые ключи.

Пример:

javascript
const obj = {
  date: new Date(),
  fn: () => console.log('test'),
  undef: undefined
};

const copy = JSON.parse(JSON.stringify(obj));
// copy.date будет строкой, fn и undef пропадут

Для глубокого копирования с сохранением типов лучше использовать библиотеки типа lodash.cloneDeep или structuredClone (для простых случаев).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы