JavaScript-däki if-else şert düzgünlerinde üýtgeýänleriň görkezýän ýeri
Peselme üçin bizde hemişe ýerine ýetirilýän şert bolsun:
if (true) {
}
Geliň, aşakdaky koda göz aýlalyň:
if (true) {
let res = '!';
}
console.log(res);
Görşüňiz ýaly, res üýtgeýänine
'!' baha ýazylmaly. Ýöne,
bu kody işletsek, konsol ýalňyşlyk görkezer!
Sebäbi şu: ýaýly agyz ýaýlarynyň içinde bildirilen üýtgeýänler diňe şol ýaýlaryň içinde görünýär, daşynda görünmeýär. Ylymy taýdan bir ýerde üýtgeýänleriň görkezýän ýeri hakda gürrüň geçilýär.
Ýaýly agyz ýaýlarynyň içinde bildirilen üýtgeýänleriň görkezýän ýeri diňe şol ýaýly agyz ýaýlarydyr, diýip aýdyp bolýar. Ýöne, eger üýtgeýän ýaýly agyz ýaýlarynyň daşynda bildirilense, onda ol hem içinde, hem daşynda görünýär:
let res; // üýtgeýän daşynda bildirildi
if (true) {
res = '!';
}
console.log(res); // '!' görkezer
Aşakdaky mysalda res üýtgeýänine
şerta baglylykda ýa 1, ýa-da 2
baha ýazylýar:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
Ýöne, bu kody işletsek, konsol ýalňyşlyk görkezer. Indi size düşünmek bolşy ýaly, hemmesi üýtgeýänleriň görünmegi bilen baglanyşykly. Kynçylygy çözmek üçin üýtgeýäni şertiň daşynda bildireliň:
let test = true;
let res; // üýtgeýäni şertiň daşynda bildirýäris
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // 1 görkezer
Aşakda getirilen kodyň awtory ýaşyň
18 ýaşa ýetmegini barlamak isläpdir.
Kod, şondada, işlemeýär. Kod awtorynyň
ýalňyşlygyny düzediň. Problemly kod:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);