Mainīgo lietošanas joma if-else JavaScript
Lai vienkāršības labad mums vienmēr ir izpildās nosacījums:
if (true) {
}
Apskatīsim šādu kodu:
if (true) {
let res = '!';
}
console.log(res);
Kā jūs redzat, mainīgajā res
vajadzētu ierakstīties vērtībai '!'. Tomēr,
ja palaidīsiet šo kodu, konsolē tiks izvadīta
kļūda!
Lieta ir tāda, ka mainīgie, deklarēti iekšā cirtainajās iekavās, ir redzami tikai iekšā šīm iekavām, un nav redzami ārpus tām. Zinātniski šeit runa ir par mainīgo lietošanas jomu.
Var teikt, ka mainīgo lietošanas joma, deklarētiem iekšā cirtainajām iekavām, ir tikai šīs cirtainās iekavas. Tomēr, ja mainīgais ir deklarēts ārpus cirtainajām iekavām, tad tas ir redzams gan iekšā tām, gan ārpusē:
let res; // mainīgais deklarēts ārpusē
if (true) {
res = '!';
}
console.log(res); // izvadīs '!'
Nākamajā piemērā mainīgajā res
atkarībā no nosacījuma tiek ierakstīta vai nu
vērtība 1, vai vērtība 2:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
Tomēr, ja palaidīsiet šo kodu, tad konsolē tiks izvadīta kļūda. Kā jūs tagad jau saprotat, visa lieta ir mainīgo redzamībā. Lai atrisinātu problēmu, deklarēsim mainīgo ārpus nosacījuma:
let test = true;
let res; // deklarējam mainīgo ārpus nosacījuma
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // izvadīs 1
Zemāk redzamā koda autors gribēja veikt
vecuma pārbaudi uz 18
gadu sasniegšanu. Kods tomēr nestrādā. Izlabojiet
koda autora kļūdu. Lūk, problemātiskais kods:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);