scope
Last updated
Last updated
De scope van een variabele is een belangrijk concept dat je moet begrijpen om goede code te kunnen schrijven in JavaScript. De scope van een variabele geeft aan voor welke stukken code die variabele toegankelijk is. Niet alle variabelen zijn overal beschikbaar, en hier moet je zeker van bewust zijn.
Local scope zijn variabelen die gedeclareerd zijn binnen een een block. Een block is alles wat in je code tussen accolades staat {}
. Dit kan een if-statement zijn, een functie body of zelfs gewoon code die je zelf tussen accolades hebt geplaatst.
Variabelen die binnen een bepaald blok zijn gedeclareerd kan je niet buiten dat blok aanspreken.
Het volgende is ook geldig voor
Dit zorgt er ook voor dat alle variabelen die in een functie worden gedeclareerd enkel binnen die functie beschikbaar zijn
Een speciaal geval hebben we gezien in de vorm van een for
-lus. Daarin declareerden we in het eerste deel altijd een variabele die dan doorheen de lus kan gebruikt worden. Deze variabele is beschikbaar in de block van de for
-lus, maar niet daarbuiten.
Variabelen die buiten een functie of buiten eender welke block zijn gedeclareerd zijn variabelen die in de global scope leven. Ze worden gewoon in het bestand zelf gezet. Als je gewoon
in een bronbestand zet, dan zeggen we dat a
in de global scope zit.
In andere programmeertalen zoals C# en Java is er een regel dat zolang je in de scope van een variabele bent, je geen nieuwe variabele kan aanmaken met dezelfde naam. In JavaScript is dat niet het geval. De onderstaande code is volledig correcte code:
We zeggen hier dat de variabele getal
uit de binnenste block de global variabele getal
overschaduwt.
Het is niet omdat het mogelijk is dat je het mag doen. Deze code is hoogst verwarrend en moet te allen tijde vermeden worden. Hou de goede gewoonte van de andere programmeertalen en zorg ervoor dat je variabele namen uniek zijn.