⊗jsPmCdScpN 135 of 505 menu

Nianse področja veljavnosti spremenljivk v konstrukcijah if-else v JavaScriptu

Področje veljavnosti spremenljivk ima določene nianse. Oglejmo si jih na primeru. Izven našega pogoja deklarirajmo spremenljivko res z eno vrednostjo, znotraj pogoja pa spremenimo to vrednost na drugo:

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

Kot vidite, se je spremenljivka res spremenila znotraj pogoja. Vse pa se bo spremenilo, če znotraj pogoja tudi deklariramo spremenljivko res prek let:

let res = 1; if (true) { let res = 2; // deklarirajmo spremenljivko prek let } console.log(res); // izpiše 1, ne 2!

Tukaj je bistvo v tem, da je deklaracija spremenljivke prek let znotraj pogoja ustvarila lokalno spremenljivko res.

To pomeni, da znotraj pogoja obstaja ena spremenljivka res, zunaj pogoja pa druga. Prepričati se lahko tako, da vrednost spremenljivke izpišemo v konzolo znotraj pogoja:

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

Avtor spodnje kode je želel izvesti preverbo starosti za dosego 18 let. Koda pa pri kateri koli vrednosti starosti izpiše v konzolo vrednost undefined. Popravite napako avtorja kode. Tu je problematična koda:

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

Avtor spodnje kode je želel izvesti preverbo starosti za dosego 18 let. Po preverbi kode se je izkazalo, da če je starost enaka ali večja od 18 let, potem se v spremenljivko adult zapiše true, kot bi moralo biti, vendar, če je starost manjša od 18, ima spremenljivka adult vrednost undefined. Popravite napako avtorja kode.

Tu je problematična koda:

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

Avtor spodnje kode je želel izvesti preverbo starosti. Koda pa pri kateri koli vrednosti starosti izpiše v konzolo vrednost undefined. Popravite napako avtorja kode.

Tu je problematična koda:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'od 18 do 23'; } else { let res = 'več kot 23'; } } else { let res = 'manj kot 18'; } console.log(res);

Avtor spodnje kode je želel izvesti preverbo starosti. Koda pa pri vrednosti starosti večji od 18 let izpiše v konzolo vrednost undefined. Popravite napako avtorja kode.

Tu je problematična koda:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'od 18 do 23'; } else { res = 'več kot 23'; } } else { res = 'manj kot 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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni