Вопрос проверяет знание того, какие операции с массивами изменяют исходные данные и могут приводить к побочным эффектам.
Некоторые методы массивов изменяют сам массив, а не возвращают новый.
Это называется мутацией данных.
Мутирующие методы могут вызывать неожиданные баги, особенно при работе с состоянием.
Важно уметь отличать их от немутирующих методов.
При работе с массивами в JavaScript важно понимать, какие методы изменяют исходный массив.
Мутирующий метод массива — это метод, который изменяет содержимое исходного массива, а не создаёт новый.
К наиболее часто используемым относятся:
push
pop
shift
unshift
splice
sort
reverse
const arr = [1, 2, 3];
arr.push(4);
// arr теперь [1, 2, 3, 4]
Мутации опасны, потому что:
исходные данные меняются неявно
сложнее отслеживать изменения
могут ломаться оптимизации и сравнения по ссылке
Вместо мутаций часто используют:
concat
slice
map
filter
toSorted (в современных версиях)
const newArr = arr.concat(4);
В бизнес-логике и UI-коде предпочтительнее немутирующие методы, чтобы код был предсказуемым и безопасным.
Мутирующие методы меняют массив напрямую. Их нужно использовать осознанно и аккуратно.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию