⊗jsPmCdScp 134 of 505 menu

Opseg vidljivosti promenljivih u if-else u JavaScript-u

Neka radi jednostavnosti imamo uslov koji se uvek ispunjava:

if (true) { }

Hajde da pogledamo sledeći kod:

if (true) { let res = '!'; } console.log(res);

Kao što vidite, u promenljivu res bi trebalo da se upiše vrednost '!'. Međutim, ako pokrenete ovaj kod, u konzolu će se ispisati greška!

Stvar je u tome što su promenljive deklarisane unutar vitičastih zagrada vidljive samo unutar tih zagrada, a nisu vidljive spolja. Naučno rečeno, ovde se radi o opsegu vidljivosti promenljivih.

Može se reći da je opseg vidljivosti promenljivih deklarisanih unutar vitičastih zagrada samo te vitičaste zagrade. Međutim, ako je promenljiva deklarisana spolja od vitičastih zagrada, onda je vidljiva i unutar njih, i spolja:

let res; // promenljiva je deklarisana spolja if (true) { res = '!'; } console.log(res); // ispisaće '!'

U sledećem primeru u promenljivu res zavisno od uslova upisuje se ili vrednost 1, ili vrednost 2:

let num = 5; if (num >= 0) { let res = 1; } else { let res = 2; } console.log(res);

Međutim, ako pokrenete ovaj kod, u konzolu će se ispisati greška. Kao što sada već razumete, ceo problem je u vidljivosti promenljivih. Da bismo rešili problem, deklarišimo promenljivu spolja od uslova:

let test = true; let res; // deklarišimo promenljivu spolja od uslova if (test) { res = 1; } else { res = 2; } console.log(res); // ispisaće 1

Autor koda datog ispod je želeo da izvrši proveru da li je dostignuto 18 godina. Kod, međutim, ne radi. Ispravite grešku autora koda. Eto problematičnog koda:

let age = 17; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);
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