⊗jsPmCdScp 134 of 505 menu

Variablers rækkevidde i if-else i JavaScript

Lad os for enkelheds skyld have en betingelse, der altid udføres:

if (true) { }

Lad os se på følgende kode:

if (true) { let res = '!'; } console.log(res);

Som du kan se, skal variablen res tilskrives værdien '!'. Men hvis du kører denne kode, vil der vises en fejl i konsollen!

Grunden er, at variabler, deklareret inden for krøllede parenteser, kun er synlige inde i disse parenteser og ikke er synlige udenfor. Videnskabeligt set taler vi her om variablers rækkevidde.

Man kan sige, at rækkevidden for variabler deklareret inde i krøllede parenteser kun er disse krøllede parenteser. Men hvis en variabel er deklareret uden for de krøllede parenteser, er den synlig både inde i dem og udenfor:

let res; // variabel deklareret udenfor if (true) { res = '!'; } console.log(res); // vil udskrive '!'

I det næste eksempel tildeles variablen res enten værdien 1 eller værdien 2 afhængigt af betingelsen:

let num = 5; if (num >= 0) { let res = 1; } else { let res = 2; } console.log(res);

Men hvis du kører denne kode, vil der opstå en fejl i konsollen. Som du nu forstår, skyldes det variablers rækkevidde. For at løse problemet deklarerer vi variablen uden for betingelsen:

let test = true; let res; // deklarer variablen uden for betingelsen if (test) { res = 1; } else { res = 2; } console.log(res); // vil udskrive 1

Forfatteren af koden nedenfor ønskede at udføre en alderskontrol for at opnå 18 år. Koden fungerer dog ikke. Ret fejlen i forfatterens kode. Her er den problematiske kode:

let age = 17; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);
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