globale Variablen
Paul
- javascript
Moin.
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:
function b() { a = 'hallo'; }
function c() { alert(a); }
erstelle?
Paul
In JavaScript ist es nicht notwendig Variablen zu Dimensionieren (bzw. als leere Strings oder was auch immer zu erstellen um sie erst dannn befüllen zu können).
In deinen beispielen kommt es jedenfalls darauf an, in welcher Reihenfolge die Funktionen aufgerufen werden.
In JavaScript ist es nicht notwendig Variablen zu Dimensionieren (bzw. als leere Strings oder was auch immer zu erstellen um sie erst dannn befüllen zu können).
Danke
In deinen beispielen kommt es jedenfalls darauf an, in welcher Reihenfolge die Funktionen aufgerufen werden.
Klar
Wünsche noch eine schöne Restwoche.
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