If-else da o'zgaruvchilarning ko'rinish sohasi JavaScriptda
Soddalik uchun, doimo bajariladigan shartni olaylik:
if (true) {
}
Keling, quyidagi kodni ko'rib chiqaylik:
if (true) {
let res = '!';
}
console.log(res);
Ko'rib turganingizdek, res o'zgaruvchisiga
'!' qiymati yozilishi kerak. Biroq,
agar ushbu kodni ishga tushirsangiz, konsolda
xatolik paydo bo'ladi!
Gap shundaki, jingalak qavs ichida e'lon qilingan o'zgaruvchilar faqat shu qavslar ichida ko'rinadi, tashqarida ko'rinmaydi. Ilmiy nuqtai nazardan bu o'zgaruvchilarning ko'rinish sohasi haqida gap ketadi.
Jingalak qavslar ichida e'lon qilingan o'zgaruvchilarning ko'rinish sohasi faqat shu jingalak qavslardir, deyish mumkin. Biroq, agar o'zgaruvchi jingalak qavslar tashqarisida e'lon qilingan bo'lsa, u ham ichida, ham tashqarida ko'rinadi:
let res; // o'zgaruvchi tashqarida e'lon qilingan
if (true) {
res = '!';
}
console.log(res); // '!' ni chiqaradi
Quyidagi misolda res o'zgaruvchisiga
shartga qarab 1 yoki 2
qiymati yoziladi:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
Biroq, agar ushbu kodni ishga tushirsangiz, konsolda xatolik paydo bo'ladi. Endi tushunganingizdek, muammo o'zgaruvchilarning ko'rinishida. Muammoni hal qilish uchun o'zgaruvchini shart tashqarisida e'lon qilamiz:
let test = true;
let res; // o'zgaruvchini shart tashqarisida e'lon qilamiz
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // 1 ni chiqaradi
Quyida keltirilgan kod muallifi yoshni 18
yoshga yetganligini tekshirmoqchi edi.
Biroq, kod ishlamaydi. Kod muallifining xatosini tuzating.
Mana muammoli kod:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);