Глобальные переменные и параметры функций в JavaScript
Пусть у нас есть функция, принимающая параметром число:
function func(localNum) {
console.log(localNum);
}
Пусть снаружи функции есть переменная num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // внешняя глобальная переменная
Давайте вызовем нашу функцию, передав ей
параметром переменную num:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // вызываем функцию с параметром, выведет 1
Получится, что внутри функции будет доступна
как переменная localNum (параметр
функции), так и переменная num (как
внешняя переменная):
function func(localNum) {
console.log(num); // выведет 1
console.log(localNum); // выведет 1
}
let num = 1;
func(num);
Сама переменная localNum будет локальной
переменной функции и не будет доступна извне:
function func(localNum) {
}
let num = 1;
func(num); // вызываем функцию с параметром
console.log(localNum); // выдаст ошибку
Так как переменная localNum - локальная,
то никакие изменения с ней ничего не поменяют
снаружи:
function func(localNum) {
localNum = 2; // ничего не меняет снаружи
}
let num = 1;
func(num);
Если же поменять внутри переменную num
(глобальную), то изменения появятся и снаружи:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // выведет 2
Однако, если внутри функции объявить
переменную num через let, то
мы создадим таким образом локальную переменную
num, никак не влияющую на внешнюю
переменную:
function func(localNum) {
let num = 2; // объявим через let
}
let num = 1;
func(num);
console.log(num); // выведет 1 - ничего не поменялось
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
console.log(localNum);
}
func(1);
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Определите, не запуская код, что выведется в консоль:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Определите, не запуская код, что выведется в консоль:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);