Совпадение имен с параметрами в 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);