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

В чем разница между Object.assign и JSON.stringify

Object.assign копирует свойства из одного или нескольких объектов в целевой объект (поверхностное копирование). Изменения вложенных объектов будут отражаться в исходных.

javascript
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = Object.assign({}, obj1);
obj2.b.c = 3; // изменит и obj1.b.c

JSON.stringify преобразует объект в строку JSON, после чего JSON.parse создает полностью новый объект (глубокое копирование). Изменения не затрагивают исходный объект.

javascript
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = JSON.parse(JSON.stringify(obj1));
obj2.b.c = 3; // obj1.b.c останется 2

Основные различия:

  • Object.assign работает только с поверхностными копиями
  • JSON.stringify теряет методы объекта и специальные типы (Date, RegExp и т.д.)
  • Object.assign быстрее, но JSON.stringify обеспечивает глубокое копирование
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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