⊗jsPmCdScpN 135 of 505 menu

Nuansy rozsahu viditeľnosti premenných v konštrukciách if-else v JavaScripte

Rozsah viditeľnosti premenných má určité nuansy. Poďme si ich ukázať na príklade. Deklarujme mimo našej podmienky premennú res s jednou hodnotou a vnútri podmienky zmeňme túto hodnotu na inú:

let res = 1; if (true) { res = 2; } console.log(res); // vypíše 2

Ako vidíte, premenná res sa zmenila vnútri podmienky. Všetko sa však zmení, ak vnútri podmienky tiež deklarujeme premennú res pomocou let:

let res = 1; if (true) { let res = 2; // deklarujeme premennú pomocou let } console.log(res); // vypíše 1, nie 2!

Príčina je v tom, že deklarácia premennej pomocou let vnútri podmienky vytvorila lokálnu premennú res.

To znamená, že vnútri podmienky existuje jedna premenná res a mimo podmienky - iná. Presvedčiť sa o tom môžeme výpisom hodnoty premennej do konzoly vnútri podmienky:

let res = 1; if (true) { let res = 2; console.log(res); // vypíše 2 } console.log(res); // vypíše 1

Autor uvedeného kódu chcel vykonať kontrolu veku na dosiahnutie 18 rokov. Kód však pri akejkoľvek hodnote veku vypíše do konzoly hodnotu undefined. Opravte chybu autora kódu. Tu je problematický kód:

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

Autor uvedeného kódu chcel vykonať kontrolu veku na dosiahnutie 18 rokov. Po kontrole kódu sa ukázalo, že ak vek je rovný alebo väčší ako 18 rokov, tak do premennej adult sa zapíše true, ako má byť, avšak ak je vek menší ako 18, tak premenná adult má hodnotu undefined. Opravte chybu autora kódu.

Tu je problematický kód:

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

Autor uvedeného kódu chcel vykonať kontrolu veku. Kód však pri akejkoľvek hodnote veku vypíše do konzoly hodnotu undefined. Opravte chybu autora kódu.

Tu je problematický kód:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'od 18 do 23'; } else { let res = 'viac ako 23'; } } else { let res = 'menej ako 18'; } console.log(res);

Autor uvedeného kódu chcel vykonať kontrolu veku. Kód však pri hodnote veku väčšom ako 18 rokov vypíše do konzoly hodnotu undefined. Opravte chybu autora kódu.

Tu je problematický kód:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'od 18 do 23'; } else { res = 'viac ako 23'; } } else { res = 'menej ako 18'; } console.log(res);
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť