JavaScript'теги if-else ичиндеги өзгөрмөлөрдүн көрүнүү чөйрөсү

Жөнөкөйлүгү үчүн бизде ар дайым аткарылуучу шарт бар дейли:

javascriptif (true) {
  
}

Келгиле, төмөнкү кодду карап көрөлү:

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

console.log(res);

Көрүп тургандай, res өзгөрмөсүнө '!' мааниси жазылышы керек. Бирок, бул кодду иштетсек, консолго ката чыгат!

Маселе мында, каша ичинде жарыяланган өзгөрмөлөр, ошол кашалардын ичинде гана көрүнөт, алардын сыртында көрүнбөйт. Илимий тил менен бул жерде өзгөрмөлөрдүн көрүнүү чөйрөсү жөнүндө сөз болот.

Каша ичинде жарыяланган өзгөрмөлөрдүн көрүнүү чөйрөсү ошол кашалардын өзү гана дей алабыз. Бирок, эгерде өзгөрмө кашалардын сыртында жарыяланса, анда ал ичинде да, сыртында да көрүнөт:

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);