Mainīgo lietošanas joma if-else JavaScript

Lai vienkāršības labad mums vienmēr ir izpildās nosacījums:

javascriptif (true) {
  
}

Apskatīsim šādu kodu:

javascriptif (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ē:

javascriptlet 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:

javascriptlet 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:

javascriptlet test = true;
let res; // deklarējam mainīgo ārpus nosacījuma

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

console.log(res); // izvadīs 1
Задание 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:

javascriptlet age = 17;

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

console.log(adult);