⊗jsPmCdScpN 135 of 505 menu

Nuancer af variablers rækkevidde i if-else konstruktioner i JavaScript

Variablers rækkevidde har en vis nuance. Lad os se på det med et eksempel. Lad os erklære en variabel res uden for vores betingelse med én værdi, og inde i betingelsen ændre denne værdi til en anden:

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

Som du kan se, blev variablen res ændret inde i betingelsen. Alt ændrer sig dog, hvis vi også erklærer variablen res inde i betingelsen via let:

let res = 1; if (true) { let res = 2; // erklær variabel via let } console.log(res); // vil udskrive 1, ikke 2!

Her handler det hele om, at erklæringen af variablen via let inde i betingelsen skabte en lokal variabel res.

Det vil sige, at inde i betingelsen eksisterer den ene variabel res, og uden for betingelsen - en anden. Du kan overbevise dig selv om dette ved at udskrive værdien af variablen i konsollen inde i betingelsen:

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

Forfatteren af koden nedenfor ønskede at udføre en alderskontrol for at opnå 18 år. Koden udskriver dog uanset aldersværdien værdien undefined i konsollen. Ret kodeforfatterens fejl. Her er den problematiske kode:

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

Forfatteren af koden nedenfor ønskede at udføre en alderskontrol for at opnå 18 år. Efter kontrol af koden viste det sig, at hvis alderen er lig med eller større end 18 år, så bliver true skrevet til variablen adult, som det skal være, men hvis alderen er mindre end 18, har variablen adult værdien undefined. Ret kodeforfatterens fejl.

Her er den problematiske kode:

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

Forfatteren af koden nedenfor ønskede at udføre en alderskontrol. Koden udskriver dog uanset aldersværdien værdien undefined i konsollen. Ret kodeforfatterens fejl.

Her er den problematiske kode:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'fra 18 til 23'; } else { let res = 'mere end 23'; } } else { let res = 'mindre end 18'; } console.log(res);

Forfatteren af koden nedenfor ønskede at udføre en alderskontrol. Koden udskriver dog ved en aldersværdi større end 18 år værdien undefined i konsollen. Ret kodeforfatterens fejl.

Her er den problematiske kode:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'fra 18 til 23'; } else { res = 'mere end 23'; } } else { res = 'mindre end 18'; } console.log(res);
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis