Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFVGb 218 of 505 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Глобальные переменные в функциях в JavaScript

В JavaScript (в других языках чаще всего не так) переменные, определенные снаружи функции, будут видны внутри этой функции. Такие переменные называются глобальными. Посмотрим на примере:

let num = 1; // переменная снаружи функции function func() { console.log(num); // переменная num видна внутри функции } func(); // выведет 1

На самом деле переменная должна быть определена не перед определением функции, а перед ее вызовом:

function func() { console.log(num); } let num = 1; // переменная снаружи функции func(); // выведет 1

Если менять значение переменной и после этого каждый раз вызывать функцию - алерт каждый раз будет выдавать разные результат:

function func() { console.log(num); } let num; // объявим переменную num = 1; // задаем значение 1 func(); // выведет 1 num = 2; // задаем значение 2 func(); // выведет 2

Если у нас несколько функций, то глобальная переменная будет доступна в каждой из этих функций:

function func1() { console.log(num); } function func2() { console.log(num); } let num = 1; func1(); // выведет 1 func2(); // выведет 1

Если в одной из функций произойдут изменения с глобальной переменной, то эта переменная поменяется во всех функциях, использующих эту переменную:

function func1() { console.log(num); num++; // меняем глобальную переменную } function func2() { console.log(num); } let num = 1; func1(); // выведет 1 func2(); // выведет 2

Так как любая из функций легко может поменять глобальную переменную, то их использование представляет собой рассадник трудноуловимых ошибок. По этой причине использование глобальных переменных в скрипте нужно сводить к минимуму. Желательно, чтобы их вообще не было или было самое минимальное количество.

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

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

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

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

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

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