molily: globale Variablen

Beitrag lesen

Hallo,

Macht es einen Unterschied (und wenn ja welchen) ob ich globale Variablen so:

var a = '';

function b() { a = 'hallo'; }
   function c() { alert(a); }


> oder so:  
> ~~~javascript

   function b() { a = 'hallo'; }  

>    function c() { alert(a); }

erstelle?

Wie suit sagt, die Reihenfolge ist hier entscheidend.

Auf eine deklarierte Variable kannst du zugreifen, ohne dass eine Exception (ein Ausnahmefehler, der das Programm abbricht) geworfen wird. Selbst wenn sie noch keinen Wert hat und bloß deklariert wurde (z.B. var a;). Sie hat dann den Wert undefined.

Das heißt, du kannst in ersten Beispiel c aufrufen, bevor du b aufgerufen hast. Das geht beim zweiten Beispiel nicht, alert(a); würde einen ReferenceError werfen.

Siehe auch http://aktuell.de.selfhtml.org/artikel/javascript/objektabfragen/#obj.

Eine andere Möglichkeit wäre natürlich window.a, was dir ebenfalls undefined liefert, wenn die globale Variable a noch nicht deklariert bzw. ihr ein Wert zugewiesen wurde. Siehe auch http://aktuell.de.selfhtml.org/artikel/javascript/objektabfragen/#obj-eig.

Mathias