Ответ
Плюсы:
- Предсказуемость: данные не меняются неожиданно, проще отслеживать изменения
- Проще отладка: история изменений сохраняется
- Оптимизация производительности (например, в React через shallow compare)
- Безопасность: данные защищены от случайных изменений
Минусы:
- Нагрузка на память: создание новых объектов вместо изменения
- Сложность с глубокими структурами (нужны библиотеки типа Immer)
- Дополнительный код для простых операций
// Пример иммутабельного обновления
const user = { name: 'Alex', age: 30 };
const updatedUser = { ...user, age: 31 }; // вместо user.age = 31