К списку вопросов
Основы программированияjunior

Как передаются аргументы в функцию?

#переменные#присваивание#параметры

Короткий ответ

Аргументы передаются по значению. Параметр функции - отдельная переменная; если передан объект, через нее доступен тот же объект.

Разбор

Присваивание параметру нового значения не меняет переменную вызывающего кода. Но изменение поля общего объекта видно снаружи.

Поэтому «функция не меняет вход» обычно означает, что она не изменяет и вложенные объекты. Один только const у внешней переменной этого не обеспечивает.

function change(user) {
  user.name = "Оля"
  user = { name: "Ира" }
}
const person = { name: "Анна" }
change(person)
console.log(person.name) // Оля

Источники

MDN: Передача аргументов функциям