Fusha e dukshmërisë së variablave në if-else në JavaScript

Le të themi për thjeshtësi që kemi një kusht që ekzekutohet gjithmonë:

javascriptif (true) {
  
}

Le të shqyrtojmë kodin e mëposhtëm:

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

console.log(res);

Siç e shihni, në variablin res duhet të regjistrohet vlera '!'. Megjithatë, nëse ekzekutohet ky kod, në konsol do të shfaqet një gabim!

Çështja është se variablat, të deklaruar brenda kllapave kaçurrelë, janë të dukshëm vetëm brenda këtyre kllapave, dhe nuk janë të dukshme jashtë. Në terma shkencorë këtu bëhet fjalë për fushën e dukshmërisë së variablave.

Mund të thuhet se fusha e dukshmërisë e variablave, të deklaruar brenda kllapave kaçurrelë, janë vetëm këto kllapa kaçurrelë. Megjithatë, nëse një variabël deklarohet jashtë kllapave kaçurrelë, atëherë është e dukshme edhe brenda tyre, edhe jashtë:

javascriptlet res; // variabla deklarohet jashtë

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

console.log(res); // do të shfaqë '!'

Në shembullin e mëposhtëm në variablin res në varësi të kushtit regjistrohet ose vlera 1, ose vlera 2:

javascriptlet num = 5;

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

console.log(res);

Megjithatë, nëse ekzekutohet ky kod, në konsol do të shfaqet një gabim. Siç e kuptoni tani, e gjithë çështja është në dukshmërinë e variablave. Për të zgjidhur problemin le të deklarojmë variablin jashtë kushtit:

javascriptlet test = true;
let res; // le ta deklarojmë variablin jashtë kushtit

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

console.log(res); // do të shfaqë 1
Задание 1

Autori i kodit të dhënë më poshtë donte të kryente një kontroll moshë për arritjen e 18 vjeç. Kodi, megjithatë, nuk funksionon. Korrigjoni gabimin e autorit të kodit. Ja kodi problematik:

javascriptlet age = 17;

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

console.log(adult);