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