Проверяет понимание передачи массивов по ссылке в JavaScript и связанных с этим побочных эффектов.
В JavaScript массивы являются объектами, и при передаче в функцию передается ссылка на этот объект, а не его копия. Это означает, что любые изменения массива внутри функции (добавление, удаление или изменение элементов) будут видны и за её пределами.
function addItem(arr) {
arr.push(4);
}
const myArray = [1, 2, 3];
addItem(myArray);
console.log(myArray); // [1, 2, 3, 4]В этом примере массив myArray изменился после вызова функции, потому что arr — это та же ссылка.
Если нужно работать с массивом, не изменяя оригинал, создайте его копию. Самый простой способ — использовать spread-оператор или метод slice():
function addItemSafe(arr) {
const newArr = [...arr, 4];
return newArr;
}
const original = [1, 2, 3];
const updated = addItemSafe(original);
console.log(original); // [1, 2, 3]
console.log(updated); // [1, 2, 3, 4]Понимание передачи по ссылке важно для написания предсказуемого кода без неожиданных мутаций. Всегда создавайте копию массива, если не планируете изменять исходные данные, особенно в больших проектах с множеством функций.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию