Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/structured-clone

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

СобеседованиеОбъектыМодули

structuredClone(value) — встроенная функция для глубокого копирования объектов (ES2022).

Преимущества перед JSON.parse(JSON.stringify()):

  1. Копирует Date, RegExp, Map, Set, ArrayBuffer, Blob, File, ImageData
  2. Сохраняет циклические ссылки (JSON бросит ошибку)
  3. Копирует undefined (JSON теряет)
  4. Копирует NaN, Infinity, -Infinity (JSON преобразует в null)

Не копирует:

  1. Функции — бросит DataCloneError
  2. DOM-элементы
  3. Свойства, добавленные через Object.defineProperty с enumerable: false
  4. Цепочку прототипов — результат всегда plain object
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov