> Какие данные можно мутировать в JavaScript, а какие нет (JavaScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: IT-One
Стек: JavaScript
> Пример ответа
В JavaScript данные делятся на мутируемые (изменяемые) и иммутабельные (неизменяемые).
Иммутабельные (не мутируются):
-
Примитивные типы:
number,string,boolean,null,undefined,symbol,bigint. -
Любая операция над ними (например, конкатенация строк или арифметика) возвращает новое значение, исходное не меняется. Пример:
let a = "hello"; a.toUpperCase();-aостанется"hello".
Мутируемые (можно изменять):
-
Объекты:
Object,Array,Map,Set,WeakMap,WeakSet,Date, а также пользовательские классы. -
Мутация происходит при изменении свойств/элементов напрямую:
obj.key = value,arr.push(item),arr[0] = newValue. -
Важно: методы массивов вроде
map,filter,slice- не мутируют, а возвращают новый массив. Аsplice,sort,reverse- мутируют исходный.
Практический совет: Для предсказуемости кода (особенно в React/Redux) старайтесь избегать мутаций, используя spread-оператор или Object.assign для создания копий.
> Похожие задачи по frontend
Как реализовать метод addClass с поддержкой цепочки вызовов
Какие проблемы решаются с помощью статических методов Promise в JavaScript
Что такое прокси в JavaScript и как его использовать
В чем разница между двойным (==) и тройным (===) равенством в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью