Globale und lokale Variablen


Variablen speichern Werte, die man während des Programmablaufs verwenden kann. Dabei werden globale und lokale Variablen unterschieden. Das folgende Beispiel soll den Unterschied aufzeigen:


Beispiel 1:

Finden Sie den Fehler und korrigieren Sie den Code, so dass der Text ausgegeben werden kann.


Beispiel 2:

Finden Sie den Fehler und korrigieren Sie den Code, so dass der Text ausgegeben werden kann.


Eigenschaften von lokalen und globalen Variablen

In JavaScript entstehen globale Variablen auf folgende Weise:

  • wenn sie nicht durch var, let oder const deklariert wurden,
  • bei einer Deklaration außerhalb aller Funktionen,
  • bei einer Wertzuweisung innerhalb einer Funktion, ohne dass die Variable zuvor durch var, let oder const deklariert wurde.

Lokale Variablen geben beim Verlassen der Funktion in der sie angelegt wurden ihren Speicherplatz frei. Variablen, die mit let oder const angelegt werden, gelten nur innerhalb ihres Blocks und Code außerhalb des Block kann nicht auf diese Variablen zugreifen. let und const innerhalb von Code-Blöcken sind immer lokalen Variablen. Das verhindert viele schwer aufzudeckende Fehler.

In Javascript löst die Deklaration von Variablen mit let das alte Schlüsselwort var für Variablen ab. Variablen, die mit let deklariert werden, gelten nur innerhalb ihres Code-Blocks, während Variablen, die mit var deklariert wurden, in der gesamten Funktionen gelten.

Für for-Schleifen sollte immer das Schlüsselwort let verwendet werden, damit die Laufvariable wirklich nur in der Schleife gültig ist.

Also anstelle von:

for (var i=0; i<10; i++) {
    // ..
}

immer

for (let i=0; i<10; i++) {
    // ..
}

Aufgabe:

Starten Sie den p5-Webeditor und denken Sie sich ein kleines Programm aus mit dem man die Funktionsweise von lokalen und globalen Variablen demonstrieren kann.

p5-Editor starten...


Lösungsvorschlag (Gerke, 12):

Anmerkung: zeit ist global vom Wert 2, in der if-Schleife vom Wert PI, in der else-Schleife vom Wert 2.


Anmerkung: zeit ist global vom Wert 2, in der function draw() deklariert, in der if-Schleife vom Wert PI, in der else-Schleife deklariert ohne Wert.


Anmerkung: zeit ist global vom Wert 2, in der function draw() wird der Wert PI zugeordnet, zeit hat nach dem ersten Betreten des if-Blocks global den Wert PI.