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ë:
if (true) {
}
Le të shqyrtojmë kodin e mëposhtëm:
if (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ë:
let 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:
let 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:
let test = true;
let res; // le ta deklarojmë variablin jashtë kushtit
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // do të shfaqë 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:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);