⊗jsPmCdScpN 135 of 505 menu

Nijanse opsega vidljivosti promenljivih u if-else konstrukcijama u JavaScript-u

Opseg vidljivosti promenljivih ima određenu nijansu. Hajde da je razmotrimo na primeru. Hajde da deklarišemo izvan našeg uslova promenljivu res sa jednom vrednošću, a unutar uslova promenimo tu vrednost na drugu:

let res = 1; if (true) { res = 2; } console.log(res); // ispisaće 2

Kao što vidite, promenljiva res se promenila unutar uslova. Međutim, sve će se promeniti, ako unutar uslova takođe deklarišemo promenljivu res preko let:

let res = 1; if (true) { let res = 2; // deklarišimo promenljivu preko let } console.log(res); // ispisaće 1, a ne 2!

Ovde je stvar u tome što je deklaracija promenljive preko let unutar uslova napravila lokalnu promenljivu res.

To jest, unutar uslova postoji jedna promenljiva res, a izvan uslova - druga. U to možemo se uveriti, ispisavši vrednost promenljive u konzolu unutar uslova:

let res = 1; if (true) { let res = 2; console.log(res); // ispisaće 2 } console.log(res); // ispisaće 1

Autor donjeg koda je želeo da izvrši proveru da li je dostignuto 18 godina. Međutim, kod pri bilo kojoj vrednosti godina ispisuje u konzolu vrednost undefined. Ispravite grešku autora koda. Eto problematičnog koda:

let age = 17; let adult; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);

Autor donjeg koda je želeo da izvrši proveru da li je dostignuto 18 godina. Nakon provere koda ispostavilo se da ako godine jesu jednake ili veće od 18 godina, onda se u promenljivu adult upisuje true, kako i treba, međutim, ako su godine manje od 18, onda promenljiva adult ima vrednost undefined. Ispravite grešku autora koda.

Eto problematičnog koda:

let age = 17; let adult; if (age >= 18) { adult = true; } else { let adult = false; } console.log(adult);

Autor donjeg koda je želeo da izvrši proveru godina. Međutim, kod pri bilo kojoj vrednosti godina ispisuje u konzolu vrednost undefined. Ispravite grešku autora koda.

Eto problematičnog koda:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'od 18 do 23'; } else { let res = 'više od 23'; } } else { let res = 'manje od 18'; } console.log(res);

Autor donjeg koda je želeo da izvrši proveru godina. Međutim, kod pri vrednosti godina većoj od 18 godina ispisuje u konzolu vrednost undefined. Ispravite grešku autora koda.

Eto problematičnog koda:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'od 18 do 23'; } else { res = 'više od 23'; } } else { res = 'manje od 18'; } console.log(res);
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij