Есть два подхода к изменению данных Неизменяемые данные - данные, которые после своего создания никогда не меняются в памяти. Вместо этого создадим новую копию данных с необходимыми изменениями. Механика копирования в JavaScript
Примитивные значения
Составные значения - Object, array, etc Последствия мутации данных Возможность мутации крадет у нас гарантию, что данные будут теми, которые мы объявили. Наихудший сценарий, когда один объект используется в разных частях кода, тогда мутация объекта в одном месте может привести к ошибкам в другом. Подобные ошибки сложно поймать, так как причина проблемы лежит за пределами фактической ошибки. Отдельная часть кода может быть нормальный, но данные приобрели неправильную форму и все сломалось.
Другие ситуации Высказывание Rich Hickey If guarantee about value not exists, then our object is only a pointer to the place in the memory, nothing more Если у нас нет гарантии, что определенное значение существует, тогда наш объект всего лишь ссылка н