Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗jsPmFVGb 218 of 505 menu

Глабальныя зменныя ў функцыях у 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