201007Jan

JavaScript: Globale und lokale Variablen definieren

JavaScript ist sicherlich eine relativ einfache Skriptsprache, die sehr viele Möglichkeiten bietet und durch die JavaScript-Frameworks wieder ein besseres Image erhalten hat. Wer Anwendungen oder Skripte entwickelt, wird an Variablen nicht vorbeikommen. Im Grunde gibt es bei den dynamischen Platzhaltern nicht viel zu beachten, da in JavaScript Variablentypen automatisch zugewiesen werden. Dennoch gibt es Situationen, in denen der Gültigkeitsbereich (Scope) einer Variable entscheidend ist. Hier will ich erklären, wie sich innerhalb und außerhalb dieses Bereichs Variablen (lokal und global) definieren lassen.
Beim Entwickeln mit JavaScript wird das Schlüsselwort var wahrscheinlich früh Verwendung finden — es scheint auf den ersten Blick eine optionale Deklaration zu sein, die dazu genutzt werden kann, um Variablen zu definieren:

  • var variable = "Test";

So kann die Variable mit dem Namen "variable" auch deklariert werden wie folgt:

  • variable = "Test";

Nun hat var in JavaScript jedoch eine besondere Funktion. Zudem kommt es darauf an, wo die Variable im Code definiert wird. Noch einmal zur Unterscheidung von Variablen:

  • Globale Variablen können überall im Code verwendet werden
  • Lokale Variablen können nur innerhalb eines Bereichs (z.B. eine Funktion) genutzt werden

Um den Bereich einer Variable zu definieren, kann in Funktionen var benutzt werden. Außerhalb von Funktionen sind Variablen immer global, unabhängig ob sie mit var deklariert werden oder nicht.

Ein Beispiel für globale Variablen:

  • variable1 = "Test"; // Global
  • var variable2 = "Test"; // Global
  •  
  • function funktion1() {
  • alert(variable1);
    }
  •  
  • funktion1(); // Ausgabe: "Test"

In diesem Beispiel hat die Verwendung von var also keine Bedeutung. Ohne das Schlüsselwort würde auch mit diesem Code eine globale Variable definiert werden:

  • function funktion1() {
  • variable1 = "Test"; // Global
    }
  •  
  • funktion1(); // Deklaration der Variable
  • alert(variable1); // Ausgabe: "Test"

Soll die Variable "variable1" nun lediglich innerhalb der Funktion "funktion1" gültig sein, kommt var zum Einsatz:

  • function funktion1() {
  • var variable1 = "Test"; // Lokal
    }
  •  
  • funktion1(); // Deklaration der Variable
  • alert(variable1); // Keine Ausgabe. "variable1" ist nicht definiert

Das bedeutet auch, dass eine Variable mit dem gleichen Namen sowohl lokal als auch global definiert werden könnte. Dies birgt die Gefahr, dass man den Überblick über die Variablen verliert. Daher sollte man bei der Deklaration von Variablen stets auf die Benennung und vorhandene Variablen achten. Hier die Situation, in der die lokale und globale Variable den gleichen Namen hat:

  • variable1 = "Test"; // Global
  •  
  • function funktion1() {
  • var variable1 = "Test2"; // Lokal
  • alert(variable1);
    }
  •  
  • funktion1(); // Ausgabe: "Test2"
  • alert(variable1); // Ausgabe: "Test"

Schließlich gilt das Verwenden von var auch für Verkettungen von Deklarationen. Durch Kommata können mehrere Variablen an einer Stelle definiert werden:

  • function funktion1() {
  • var variable1 = "Test", variable2 = "Test2"; // Lokal
    }

Bei komplexeren Anwendungen sind Gültigkeitsbereiche von Variablen sehr wichtig, weshalb die Verwendung von var gezielt geschehen sollte.