Что такое передача по значению?
Основы языка
Передача по значению — это способ передачи данных, при котором копируется само значение, и изменения копии не влияют на оригинал. В JavaScript так передаются примитивы.
Как работает
При присваивании или передаче в функцию примитива создаётся независимая копия значения:
let a = 5;
let b = a; // копия значения
b = 10;
console.log(a); // 5 — не изменилось
function increment(x) {
x++; // меняется локальная копия
}
let n = 1;
increment(n);
console.log(n); // 1 — оригинал не тронутЧто передаётся по значению
Примитивы: string, number, bigint, boolean, undefined, null, symbol.
Передача по значению против по ссылке
- По значению (примитивы) — копия, независима.
- По ссылке (объекты) — копируется ссылка, объект общий:
const o1 = { x: 1 };
const o2 = o1; // копия ссылки
o2.x = 9;
o1.x; // 9 — общий объектНюанс
Технически объекты в JS тоже «передаются по значению», но значением является ссылка. Поэтому изменения по этой ссылке видны везде.
Коротко для собеседования
Передача по значению копирует само значение — изменения копии не влияют на оригинал (так передаются примитивы). Объекты передаются по ссылке (копируется ссылка, объект общий). Отсюда: примитив в функции изменить нельзя, а поля объекта — можно.