Scope van variabelen in JavaScript: lokaal en globaal

In JavaScript heeft elke variabele een bereik: de scope. Waar je een variabele declareert bepaalt waar je hem kunt lezen, en dat is een klassieke bron van fouten. Dit artikel legt het verschil uit tussen lokale en globale variabelen, en waarom je lokaal de voorkeur geeft.

Scope van variabelen in JavaScript: lokaal en globaal

In JavaScript hebben variabelen een bereik dat we scope noemen. Het is een belangrijk begrip in JavaScript, want het is vaak een bron van fouten. Afhankelijk van de plek waar je je variabele declareert, kan de scope namelijk verschillen. Declareer je hem in een functie, dan kun je hem alleen binnen die functie gebruiken. Er bestaan twee soorten variabelen: lokale variabelen en globale variabelen.

javascript
var tutu = "tutu"; // 1

function maFonction() {
    var toto = "toto"; // 2
    return toto;
}
  1. Tutu is een scope die we een globale variabele noemen: je kunt hem overal in het script gebruiken, ook binnen een functie.
  2. Toto is ook een scope, maar dan een lokale variabele: buiten zijn functie kun je hem niet gebruiken.

Lokale variabele

Maak je een lokale scope aan, dus een variabele binnen een functie met var, dan kun je hem alleen in die functie gebruiken. We zeggen dan dat die variabele lokaal is. Je kunt ook zeggen dat zijn bereik het niveau van de functie is waarin hij gedeclareerd werd. Buiten die functie is hij niet leesbaar. De browser maakt lokale variabelen aan zodra de functie draait en ruimt ze op zodra de functie klaar is. Let ook op het volgende:

  • Twee verschillende functies kunnen variabelen met dezelfde naam gebruiken zonder dat er een naamconflict ontstaat.
  • Wordt de functie meerdere keren aangeroepen, dan kan de scope ( de variabele ) elke keer een andere waarde hebben.

Globale variabele

Globale variabelen kun je overal in het script gebruiken, je declareert ze buiten een functie. We zeggen dat ze een globaal bereik hebben.
Globale variabelen blijven in het geheugen van je browser staan. Ze nemen dus meer geheugen in dan lokale variabelen en vergroten daarbij de kans op naamconflicten met andere scripts. Daarom geldt: gebruik zo veel mogelijk lokale variabelen.

JavaScript

Damien Flandrin Webdeveloper sinds 2010, maker van Gekkode en Email Impact. Elk artikel wordt vóór publicatie getest op een echt project. Contact
Nieuwsbrief

Nieuwe tests, tutorials en projecten, per e-mail.

Reproduceerbare tests, geversioneerde code, gedateerde resultaten. Nooit spam.