⊗jsPmCdScpN 135 of 505 menu

Nuance oblasti viditelnosti proměnných v konstrukcích if-else v JavaScriptu

Oblast viditelnosti proměnných má určitou nuanci. Pojďme si ji ukázat na příkladu. Pojďme mimo naši podmínku deklarovat proměnnou res s jednou hodnotou a uvnitř podmínky tuto hodnotu změnit na jinou:

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

Jak vidíte, proměnná res se změnila uvnitř podmínky. Vše se však změní, pokud uvnitř podmínky také deklarujeme proměnnou res pomocí let:

let res = 1; if (true) { let res = 2; // deklarujeme proměnnou pomocí let } console.log(res); // vypíše 1, a ne 2!

Zde je celé tajemství v tom, že deklarace proměnné pomocí let uvnitř podmínky vytvořila lokální proměnnou res.

To znamená, že uvnitř podmínky existuje jedna proměnná res a vně podmínky - druhá. Přesvědčit se o tom můžeme výpisem hodnoty proměnné do konzole uvnitř podmínky:

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

Autor níže uvedeného kódu chtěl provést kontrolu věku na dosažení 18 let. Kód však při jakékoli hodnotě věku vypisuje do konzole hodnotu undefined. Opravte chybu autora kódu. Zde je problematický kód:

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

Autor níže uvedeného kódu chtěl provést kontrolu věku na dosažení 18 let. Po kontrole kódu se ukázalo, že pokud je věk roven nebo větší než 18 let, pak se do proměnné adult zapíše true, jak by mělo být, avšak pokud je věk menší než 18, pak má proměnná adult hodnotu undefined. Opravte chybu autora kódu.

Zde je problematický kód:

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

Autor níže uvedeného kódu chtěl provést kontrolu věku. Kód však při jakékoli hodnotě věku vypisuje do konzole hodnotu undefined. Opravte chybu autora kódu.

Zde je problematický kód:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'od 18 do 23'; } else { let res = 'větší než 23'; } } else { let res = 'méně než 18'; } console.log(res);

Autor níže uvedeného kódu chtěl provést kontrolu věku. Kód však při hodnotě věku větší než 18 let vypisuje do konzole hodnotu undefined. Opravte chybu autora kódu.

Zde je problematický kód:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'od 18 do 23'; } else { res = 'větší než 23'; } } else { res = 'méně než 18'; } console.log(res);
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout