# Совпадение имен с параметрами в JavaScript

Параметры функции являются локальными переменными внутри нее. Давайте назовем параметр функции таким же именем, как и внешнюю глобальную переменную:

`function func(num) { console.log(num); } let num = 1; func(num);`

В данном случае у нас получится так, что снаружи функции будет переменная `num` и внутри функции будет переменная `num`. Но это будут разные переменные: изменение переменной внутри функции будет приводить к изменению локальной переменной функции. А внешняя переменная внутри функции будет недоступна и не сможет быть изменена никаким способом. Проверим:

`function func(num) { num = 2; // меняем локальную переменную } let num = 1; func(num); console.log(num); // выведет 1 - ничего не поменялось`

Определите, не запуская код, что выведется в консоль:

`function func(num) { num = 2; } let num = 1; func(num); console.log(num);`

Определите, не запуская код, что выведется в консоль:

`function func() { num = 2; } let num = 1; func(); console.log(num);`

Определите, не запуская код, что выведется в консоль:

`function func() { let num = 2; } let num = 1; func(); console.log(num);`
← →
↑
en ru