offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFVGVP 220 of 503 menu

Глобальные переменные и параметры функций в 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);
enru