JavaScript-de if-else gurluşlarynda üýtgeýänleriň görkezme meýdanynyň nyuanslary

Üýtgeýänleriň görkezme meýdanynyň belli bir nyuansy bar. Geliň ony mysal bilen gözden geçireliň. Geliň şertimiziň daşynda bir bahasy bilen res üýtgeýjisini hödürleýäliň, we şert içinde bu bahany beýlekisine üýtgedeliň:

javascriptlet res = 1;

if (true) {
  res = 2;
}

console.log(res); // 2-ni çykarar

Görşüňiz ýaly, res üýtgeýjisi şert içinde üýtgedi. Emma, şert içinde-de res üýtgeýjisini let arkaly hödürleseňiz, hemmesi üýtger:

javascriptlet res = 1;

if (true) {
  let res = 2; // üýtgeýjini let arkaly hödürläýäris
}

console.log(res); // 2 däl-de, 1-i çykarar!

Bu ýerde ähli zat şonda: şert içinde let arkaly üýtgeýjäni hödürlemek res üýtgeýäniniň lokal görkezme meýdanyny döretdi.

Ýagny, şert içinde bir res üýtgeýjisi bar, şertiň daşynda bolsa beýleki. Buna göz ýetirmek üçin, üýtgeýjiniň bahasyny şert içinde konsola çykaryp bilersiňiz:

javascriptlet res = 1;

if (true) {
  let res = 2;
  console.log(res); // 2-ni çykarar
}

console.log(res); // 1-i çykarar
Задание 1

Aşakda getirilen kodyň awtory 18 ýaşa ýetmegi barlamak isledi. Emma, kod ýaşyň haýsy bahasynda bolsa-da konsolda undefined bahasyny çykarýar. Kod awtorynyň säwligini düzediň. Problemy kod:

javascriptlet age = 17;
let adult;

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

console.log(adult);
Задание 2

Aşakda getirilen kodyň awtory 18 ýaşa ýetmegi barlamak isledi. Kody barlanyndan soň, eger ýaş 18 ýaşa deň ýa-da uly bolsa, adult üýtgeýjisine hökmany ýaly true ýazylýandygyny, ýöne eger ýaş 18-den kiçi bolsa, adult üýtgeýjisiniň undefined bahasy bardygyny anyklady. Kod awtorynyň säwligini düzediň.

Problemy kod:

javascriptlet age = 17;
let adult;

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

console.log(adult);
Задание 3

Aşakda getirilen kodyň awtory ýaşy barlamak isledi. Emma, kod ýaşyň haýsy bahasynda bolsa-da konsolda undefined bahasyny çykarýar. Kod awtorynyň säwligini düzediň.

Problemy kod:

javascriptlet age = 17;
let res;

if (age >= 18) {
  if (age <= 23) {
    let res = '18-den 23-e çenli';
  } else {
    let res = '23-den uly';
  }
} else {
  let res = '18-den kiçi';
}

console.log(res);
Задание 4

Aşakda getirilen kodyň awtory ýaşy barlamak isledi. Emma, kod ýaşyň 18 ýaşdan uly bahasynda konsolda undefined bahasyny çykarýar. Kod awtorynyň säwligini düzediň.

Problemy kod:

javascriptlet age = 19;
let res;

if (age >= 18) {
  let res;
  
  if (age <= 23) {
    res = '18-den 23-e çenli';
  } else {
    res = '23-den uly';
  }
} else {
  res = '18-den kiçi';
}

console.log(res);