Присвоение значения внешней переменной в теле функции
let i = 1;
function foo(a){
a = 2
}
foo(i)
console.log(i)
почему выводит 1?
Ответы (1 шт):
Автор решения: Danila Kartovitskii
→ Ссылка
В примере, Вы передаете аргументы функции. Когда функции передается переменная i в foo(i), и значение переменной i (равное 1) копируется в параметр a функции foo.
Внутри функции foo происходит присвоение значения a = 2, но это присвоение происходит с параметром a, а не с самой переменной i. Поэтому, когда вы печатаете значение переменной i после вызова функции foo, значение остается неизменным (равным 1), так как изменения внутри функции не затрагивают значение исходной переменной i.