⊗jsPmCdScpN 135 of 505 menu

Nuances van variabele bereik in if-else constructies in JavaScript

Variabele bereik heeft een bepaald nuance. Laten we het bekijken aan de hand van een voorbeeld. Laten we buiten onze voorwaarde een variabele declareren res met één waarde, en binnenin de voorwaarde veranderen we deze waarde naar een andere:

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

Zoals je ziet, is de variabele res veranderd binnen de voorwaarde. Alles verandert echter, als binnen de voorwaarde ook de variabele res wordt gedeclareerd via let:

let res = 1; if (true) { let res = 2; // declareer variabele via let } console.log(res); // geeft 1 weer, niet 2!

Hier komt het allemaal doordat de declaratie van de variabele via let binnen de voorwaarde een lokale variabele res heeft gecreëerd.

Dat betekent dat binnen de voorwaarde de ene variabele res bestaat, en buiten de voorwaarde - een andere. Hiervan kun je je vergewissen door de waarde van de variabele in de console weer te geven binnen de voorwaarde:

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

De auteur van de onderstaande code wilde een controle uitvoeren op het bereiken van de leeftijd van 18 jaar. De code geeft echter bij elke leeftijdswaarde de waarde undefined weer in de console. Verbeter de fout van de auteur van de code. Hier is de problematische code:

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

De auteur van de onderstaande code wilde een controle uitvoeren op het bereiken van de leeftijd van 18 jaar. Na controle van de code bleek dat als de leeftijd gelijk is aan of groter dan 18 jaar, dan wordt in de variabele adult true opgeslagen, zoals hoort, echter, als de leeftijd minder is dan 18, dan heeft de variabele adult de waarde undefined. Verbeter de fout van de auteur van de code.

Hier is de problematische code:

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

De auteur van de onderstaande code wilde een leeftijdscontrole uitvoeren. De code geeft echter bij elke leeftijdswaarde de waarde undefined weer in de console. Verbeter de fout van de auteur van de code.

Hier is de problematische code:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'van 18 tot 23'; } else { let res = 'meer dan 23'; } } else { let res = 'minder dan 18'; } console.log(res);

De auteur van de onderstaande code wilde een leeftijdscontrole uitvoeren. De code geeft echter bij een leeftijdswaarde groter dan 18 jaar de waarde undefined weer in de console. Verbeter de fout van de auteur van de code.

Hier is de problematische code:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'van 18 tot 23'; } else { res = 'meer dan 23'; } } else { res = 'minder dan 18'; } console.log(res);
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren