> Какие данные можно мутировать в 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 для создания копий.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью