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:

javascriptif (true) {
  
}

Geliň, aşakdaky koda göz aýlalyň:

javascriptif (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:

javascriptlet 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:

javascriptlet 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ň:

javascriptlet test = true;
let res; // üýtgeýäni şertiň daşynda bildirýäris

if (test) {
  res = 1;
} else {
  res = 2;
}

console.log(res); // 1 görkezer
Задание 1

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:

javascriptlet age = 17;

if (age >= 18) {
  let adult = true;
} else {
  let adult = false;
}

console.log(adult);