PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое передача по значению?

Основы языка

Передача по значению — это способ передачи данных, при котором копируется само значение, и изменения копии не влияют на оригинал. В 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 тоже «передаются по значению», но значением является ссылка. Поэтому изменения по этой ссылке видны везде.

Коротко для собеседования

Передача по значению копирует само значение — изменения копии не влияют на оригинал (так передаются примитивы). Объекты передаются по ссылке (копируется ссылка, объект общий). Отсюда: примитив в функции изменить нельзя, а поля объекта — можно.

Другие вопросы раздела