JavaScript-те if-else құрылымындағы айнымалылардың көріну облысы

Қарапайымдылық үшін бізде әрқашан орындалатын шарт бар делік:

javascriptif (true) {
  
}

Келесі кодты қарастырайық:

javascriptif (true) {
  let res = '!';
}

console.log(res);

Көріп отырғаныңыздай, res айнымалысына '!' мәні тағайындалуы керек. Алайда, егер бұл кодты іске қоссаңыз, консольде қате шығады!

Мәселе мынада, бұйра жақшалар ішінде жарияланған айнымалылар сол жақшалар ішінде ғана көрінеді, олардың сыртында көрінбейді. Ғылыми тілмен айтқанда, мұнда айнымалылардың көріну облысы tуралы сөз болады.

Бұйра жақшалар ішінде жарияланған айнымалылардың көріну облысы сол бұйра жақшалардың өзі ғана деп айтуға болады. Алайда, егер айнымалы бұйра жақшалардың сыртында жарияланса, онда ол ішінде де, сыртында да көрінеді:

javascriptlet res; // айнымалы сыртта жарияланған

if (true) {
  res = '!';
}

console.log(res); // '!' шығарады

Келесі мысалда res айнымалысына шартқа байланысты не 1 мәні, не 2 мәні тағайындалады:

javascriptlet num = 5;

if (num >= 0) {
  let res = 1;
} else {
  let res = 2;
}

console.log(res);

Алайда, егер бұл кодты іске қоссаңыз, консольде қате шығады. Енді түсінгеніңіздей, мәселе айнымалылардың көрінуінде. Мәселені шешу үшін айнымалыны шарттың сыртында жариялайық:

javascriptlet test = true;
let res; // айнымалыны шарттың сыртында жариялаймыз

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

console.log(res); // 1 шығарады
Задание 1

Төмендегі кодтың авторы 18 жаска жетуді тексергісі келген. Алайда, код жұмыс істемейді. Код авторының қатесін түзетіңіз. Мәселелік код мынада:

javascriptlet age = 17;

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

console.log(adult);