⊗jsPmFVGb 218 of 505 menu

JavaScriptda funktsiyalarda global o'zgaruvchilar

JavaScriptda (boshqa tillarda ko'pincha bunday emas) funksiyadan tashqarida aniqlangan o'zgaruvchilar ushbu funksiya ichida ko'rinadi. Bunday o'zgaruvchilar global deb ataladi. Keling, misol orqali ko'ramiz:

let num = 1; // funksiyadan tashqaridagi o'zgaruvchi function func() { console.log(num); // num o'zgaruvchisi funksiya ichida ko'rinadi } func(); // 1 ni chiqaradi

Aslida o'zgaruvchi funksiya aniqlanishidan oldin emas, balki uning chaqirilishidan oldin aniqlanishi kerak:

function func() { console.log(num); } let num = 1; // funksiyadan tashqaridagi o'zgaruvchi func(); // 1 ni chiqaradi

Agar o'zgaruvchining qiymatini o'zgartirsak va shundan so'ng har safar funksiyani chaqirsak - console.log har safar turli natijalarni chiqaradi:

function func() { console.log(num); } let num; // o'zgaruvchini e'lon qilamiz num = 1; // qiymatini 1 qilib belgilaymiz func(); // 1 ni chiqaradi num = 2; // qiymatini 2 qilib belgilaymiz func(); // 2 ni chiqaradi

Agar bizda bir nechta funksiyalar bo'lsa, global o'zgaruvchi ushbu funksiyalarning har birida mavjud bo'ladi:

function func1() { console.log(num); } function func2() { console.log(num); } let num = 1; func1(); // 1 ni chiqaradi func2(); // 1 ni chiqaradi

Agar funksiyalarning birida global o'zgaruvchi bilan o'zgartirishlar sodir bo'lsa, u holda bu o'zgaruvchi ushbu o'zgaruvchidan foydalanadigan barcha funksiyalarda o'zgaradi:

function func1() { console.log(num); num++; // global o'zgaruvchini o'zgartiramiz } function func2() { console.log(num); } let num = 1; func1(); // 1 ni chiqaradi func2(); // 2 ni chiqaradi

Funksiyalarning istalgani osongina global o'zgaruvchini o'zgartirishi mumkin bo'lgani uchun, ularning ishlatilishi aniqlashtirish qiyin bo'lgan xatolar manbai hisoblanadi. Shu sababli skriptda global o'zgaruvchilardan foydalanish minimal darajada cheklanishi kerak. Ularning umuman bo'lmasligi yoki eng kam miqdorda bo'lishi maqsadga muvofiqdir.

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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