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

В чем разница между spread и Object.assign()

Spread (...) и Object.assign() оба используются для копирования свойств объектов, но есть ключевые различия:

  1. Синтаксис:
    • Spread более лаконичен: const newObj = {...obj}
    • Object.assign() требует явного вызова: const newObj = Object.assign({}, obj)
  1. Глубина копирования:
    Оба метода создают поверхностную копию (вложенные объекты копируются по ссылке).

  2. Совместимость:

    • Object.assign() работает в старых браузерах (ES5).
    • Spread для объектов появился в ES2018.
  3. Особенности:

    • Object.assign() копирует только enumerable свойства.
    • Spread копирует также символы (Symbol).

Пример:

javascript
const obj = { a: 1 };
const spreadCopy = { ...obj }; // { a: 1 }
const assignCopy = Object.assign({}, obj); // { a: 1 }
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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