Значения передаются по ссылке или по значению в JavaScript?

Ответ: это зависит от обстоятельств!

Примитивные типы передаются по значению.

Объекты передаются по ссылке.

Примитивные типы - это числа, строки, логические значения, null, undefined и символы.

Все, что не является примитивным типом, являетсяобъект. Массивы - это объекты. Функции - это объекты.

Когда вы передаете число в функцию, оно копируется в функцию:

const increment = num => {
  num = num + 1
}

const num = 2 increment(num)

console.log(num) //2

Если вы передаете объект, он передается по ссылке, поэтому при изменении одного из его свойств изменяется и исходный объект:

const increment = num => {
  num.value = num.value + 1
}

const num = { value: 2 }

increment(num)

console.log(num.value) //3

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: