
In JavaScript haben Variablen einen Gültigkeitsbereich, den sogenannten Scope. Das ist ein wichtiges Konzept in JavaScript und eine häufige Fehlerquelle. Je nachdem, wo du deine Variable deklarierst, fällt der Scope nämlich unterschiedlich aus. Deklarierst du sie in einer Funktion, ist sie auch nur dort verwendbar. Es gibt zwei Arten von Variablen: lokale Variablen und globale Variablen.
var tutu = "tutu"; // 1
function maFonction() {
var toto = "toto"; // 2
return toto;
}- Tutu hat einen Scope, den man global nennt: Die Variable lässt sich überall im Skript verwenden, auch innerhalb einer Funktion.
- Toto hat ebenfalls einen Scope, aber es ist eine lokale Variable: Außerhalb ihrer Funktion ist sie nicht verwendbar.
Lokale Variable
Legst du eine Variable mit var innerhalb einer Funktion an, ist sie nur in dieser Funktion nutzbar. Man sagt dann, die Variable sei lokal, oder auch: Ihr Gültigkeitsbereich ist die Funktion, in der sie deklariert wurde. Außerhalb dieser Funktion lässt sie sich nicht auslesen. Der Browser legt lokale Variablen beim Aufruf der Funktion an und räumt sie wieder weg, sobald die Funktion fertig ist. Zwei Dinge solltest du außerdem wissen:
- Zwei verschiedene Funktionen dürfen Variablen mit demselben Namen verwenden, ohne dass es zu einem Namenskonflikt kommt.
- Wird die Funktion mehrmals aufgerufen, kann die Variable jedes Mal einen anderen Wert haben.
Globale Variable
Globale Variablen lassen sich überall im Skript verwenden. Sie werden außerhalb jeder Funktion deklariert und haben deshalb einen globalen Gültigkeitsbereich.
Globale Variablen liegen im Speicher deines Browsers. Sie belegen also mehr Speicher als lokale Variablen und erhöhen zugleich das Risiko von Namenskonflikten mit anderen Skripten. Deshalb gilt: Setze so weit wie möglich auf lokale Variablen.


