⊗jsPmFVNC 220 of 505 menu

Identieke variabelenamen in functies in JavaScript

Stel dat zowel buiten de functie als binnen een variabele num is. In dit geval hebben eventuele wijzigingen aan de lokale variabele num geen invloed op de globale variabele num:

let num = 1; // globale variabele function func() { let num = 2; // lokale variabele console.log(num); } func(); // roep de functie aan, geeft 2 weer console.log(num); // geeft 1 weer - globale variabele is niet veranderd

Maar als we vergeten de lokale variabele num te declareren via let, dan wordt er binnen de functie geen lokale variabele num aangemaakt, maar wordt simpelweg de globale variabele gewijzigd:

let num = 1; function func() { num = 2; // vergat let te schrijven - wijzigt externe variabele console.log(num); } func(); // roep de functie aan, geeft 2 weer console.log(num); // geeft 2 weer - variabele is veranderd

Hier zijn twee situaties mogelijk: of we wilden echt de globale variabele wijzigen (dan is alles oké), of we vergaten let en wijzigden per ongeluk de globale variabele.

Het tweede geval is een moeilijk te vinden fout, die leidt tot onvoorspelbaar gedrag van het script. Declareer daarom altijd, wanneer je een nieuwe variabele introduceert, deze via let.

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

let num = 1; function func() { num = 2; } func(); console.log(num);

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

let num = 1; function func() { let num = 2; } func(); console.log(num);
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