Неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания. Результатом любой модификации такого объекта всегда будет новый объект, при этом старый объект не изменится.
___________________
Как это понимать? Т.е при модификации создаётся новый объект, с которым мы и будем работать? Что тогда делать со старым, он же занимает какое-то место в памяти?
Так и понимать.
Буквально
let obj = { key: 'value', key2: 'value2' } // создаешь объект
console.log(obj.key) // как-то с ним работаешь
let copy = { ...obj, key: 'kukarek' } // модифицируешь (но НЕ САМ объект, а создаешь его копию с измененным свойством)
console.log(copy) // дальше как-то работаешь уже с КОПИЕЙ объекта