JavaScriptda Global O‘zgaruvchilar va Funksiya Parametrlari
Faraz qilaylik, bizda parametr sifatida son qabul qiladigan funksiya bor:
function func(localNum) {
console.log(localNum);
}
Faraz qilaylik, funksiyadan tashqarida num o‘zgaruvchisi bor:
function func(localNum) {
console.log(localNum);
}
let num = 1; // tashqi global o'zgaruvchi
Keling, funksiyamizni chaqiraylik, unga parametr sifatida
num o‘zgaruvchisini uzatib:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // funksiyani parametr bilan chaqiramiz, 1 chiqadi
Natijada, funksiya ichida ham localNum o‘zgaruvchisi
(funksiya parametri), ham num o‘zgaruvchisi (tashqi
o‘zgaruvchi sifatida) mavjud bo‘ladi:
function func(localNum) {
console.log(num); // 1 chiqadi
console.log(localNum); // 1 chiqadi
}
let num = 1;
func(num);
localNum o‘zgaruvchining o‘zi funksiyaning mahalliy
o‘zgaruvchisi bo‘lib, tashqaridan kirish mumkin emas:
function func(localNum) {
}
let num = 1;
func(num); // funksiyani parametr bilan chaqiramiz
console.log(localNum); // xatolik beradi
localNum o‘zgaruvchisi mahalliy bo‘lgani uchun,
unga qilingan hech qanday o‘zgartirishlar tashqarida hech narsani
o‘zgartirmaydi:
function func(localNum) {
localNum = 2; // tashqarida hech narsani o'zgartirmaydi
}
let num = 1;
func(num);
Agar ichkarida num o‘zgaruvchisini (globalni)
o‘zgartirsak, o‘zgarishlar tashqarida ham paydo bo‘ladi:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // 2 chiqadi
Biroq, agar funksiya ichida num o‘zgaruvchisini
let orqali e'lon qilsak, shu orqali tashqi o‘zgaruvchiga
ta'sir qilmaydigan mahalliy num o‘zgaruvchisini yaratamiz:
function func(localNum) {
let num = 2; // let orqali e'lon qilamiz
}
let num = 1;
func(num);
console.log(num); // 1 chiqadi - hech narsa o'zgarmadi
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
console.log(localNum);
}
func(1);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);