⊗jsPmCdScpN 135 of 505 menu

Muuttujien näkyvyysalueen vivahteet if-else-rakenteissa JavaScriptissä

Muuttujien näkyvyysalueella on tiettyjä vivahteita. Katsotaanpa sitä esimerkin avulla. Esittelemme ehdon ulkopuolella muuttujan res yhdellä arvolla, ja ehdon sisällä muutamme tämän arvon toiseksi:

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

Kuten näet, muuttuja res muuttui ehdon sisällä. Kaikki kuitenkin muuttuu, jos ehdon sisällä esitellään myös muuttuja res käyttäen let:

let res = 1; if (true) { let res = 2; // esitellään muuttuja let:llä } console.log(res); // tulostaa 1, eikä 2!

Asia on siinä, että muuttujan esittely käyttäen let ehdon sisällä loi paikallisen muuttujan res.

Eli ehdon sisällä on olemassa yksi muuttuja res, ja ehdon ulkopuolella - toinen. Tämä voidaan varmistaa tulostamalla muuttujan arvo konsoliin ehdon sisällä:

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

Alla olevan koodin authori halusi suorittaa ikätarkistuksen 18 vuoden täyttämiselle. Kodi kuitenkin tulostaa konsoliin arvon undefined riippumatta iän arvosta. Korjaa koodin authorin virhe. Tässä on ongelmallinen koodi:

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

Alla olevan koodin authori halusi suorittaa ikätarkistuksen 18 vuoden täyttämiselle. Koodin tarkistuksen jälkeen kävi ilmi, että jos ikä on yhtä suuri tai suurempi kuin 18 vuotta, niin muuttujaan adult kirjoitetaan true, kuten pitääkin, mutta jos ikä on pienempi kuin 18, niin muuttuja adult saa arvon undefined. Korjaa koodin authorin virhe.

Tässä on ongelmallinen koodi:

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

Alla olevan koodin authori halusi suorittaa ikätarkistuksen. Kodi kuitenkin tulostaa konsoliin arvon undefined riippumatta iän arvosta. Korjaa koodin authorin virhe.

Tässä on ongelmallinen koodi:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = '18-23'; } else { let res = 'yli 23'; } } else { let res = 'alle 18'; } console.log(res);

Alla olevan koodin authori halusi suorittaa ikätarkistuksen. Kodi kuitenkin tulostaa konsoliin arvon undefined, kun ikä on suurempi kuin 18 vuotta. Korjaa koodin authorin virhe.

Tässä on ongelmallinen koodi:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = '18-23'; } else { res = 'yli 23'; } } else { res = 'alle 18'; } console.log(res);
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää