Verständnisproblem globale Variablen in JavaScript

B

bruhucio

Guest
Hallo Fories

Ich hoffe, dass mir auf diesem Wege ein Lichtlein aufgeht...

Also, ich bin zurzeit an JS. Ich habe jedoch so einige Verständnisprobleme. Eines das mich einfach aufhält sind die globalen Variablen. Also, ich versuche mal zu erklären was ich nicht verstehe.

Eine globale Variable wird ja im head definiert. Sie kann dabei aber auch nur "vorbelegt" werden, um dann später mit anderen Werten gefüllt zu werden. Genau das verstehe ich nicht. Was nützt es mir, etwas im head zu definieren, wenn ich es dann später sowieso wieder neu definiere ändere? Wiso funktioniert das überhaupt? Da geht doch der Sinn einer Definition verloren, oder nicht? Und wiso definiert man dann überhaupt noch weitere Variablen, wenn man doch theoretisch eine einzige immer wieder neu definieren kann?

Ich habe da echt irgendwo den Wurm drin und komme einfach nicht mehr weiter! Vielleicht hat ja jemand eine Erklärung dafür, die ich verstehe?
sad.gif


Ich danke Euch vielmals...

Liebe Grüsse,
Nicole
 
Eine globale Variable muss überhaupt nicht im Head definiert werden, die kann auch am Ende der Seite definiert werden. Aber ich fang am besten am Anfang an:

Der Zweck einer Variablen ist quasi eine Zwischenspeicherung. Variablen nutzt man, um sich irgendeinen Wert, einen Text, einen Zustand vorübergehend zu "merken". Müsste man das Programm "von Hand" ausführen, z.B. eine komplizierte Rechnung, so würde man sich die gegebenen Werte sicher auf einen Zettel schreiben. Die Zwischenergebnisse kämen auch wieder auf diesen Zettel, und das Endresultat dann wahrscheinlich auch. Genau diesen Zweck erfüllen Variablen in einem Programm - eine Variable "merkt" sich quasi einen bestimmen Wert.

Der Unterschied zwischen lokalen und globalen Variablen liegt in deren Gültigkeit. Eine lokale Variable ist nur innerhalb der Funktion gültig, in der sie definiert ist. Andere Funktionen haben auf diese Variable keinen Zugriff. Globale Variablen dagegen sind von allen Funktionen einer Seite (und auch ausserhalb jeglicher Funktion) ansprechbar und behalten ihren Wert während der ganzen "Lebenszeit" der Seite.

Bleiben wir doch grad beim Rechnen und stellen uns eine Liste von Euro-Beträgen vor, die wir in Franken umrechnen müssen. Wir haben also viele Beträge, und wir haben einen Umrechnungskurs. In Javascript können wir eine Funktion schreiben, die jeden Betrag mit dem Umrechnungskurs verrechnet und uns das Ergebnis in Franken liefert. Nun könnten wir den Umrechnungskurs direkt als Zahlenwert in die Funktion schreiben, aber nur wenn er im vornherein bekannt ist. Und da Kurse täglich ändern, geht das natürlich nicht. Also deklarieren wir eine globale Variable und füllen diese mit einem Wert, den z.B. der Benutzer in ein Eingabefeld eintippt.
Das ist natürlich ein simples Beispiel und man könnte das Ganze viel eleganter lösen ;-)

Ein anderes Anwendungsbeispiel ist das Überprüfen einer Benutzeraktion. Will man wissen, ob der Benutzer z.B. aus einem Select-Tag einen Wert ausgewählt hat, so definiert man am Anfang der Seite eine globale Variable mit dem Wert "false". Sobald der Benutzer im Select etwas auswählt, wird diese Variable auf "true" gesetzt. Zu einem späteren Zeitpunkt - z.B. beim Absenden eines Formulars - kann dann die globale Variable "angeschaut" werden und man weiss daraus, ob der Benutzer einen Wert ausgewählt hat.

Daraus ergibt sich auch, wieso man noch weitere Variablen definiert. Grundsätzlich definiert man so viele Variablen, wie gleichzeitig benötigt werden. Die oben erwähnte "false"-Variable sollte natürlich nicht von irgendeiner Funktion überschrieben werden, sonst nützt sie uns am Ende (beim Absenden des Formulars) nichts mehr. Ein weiterer Grund, wieso je nachdem mehr Variablen als gleichzeitig benötigt definiert werden, sind die Datentypen - es ist einfach zu fehleranfällig, eine Datumsvariable mit einem Zahlenwert zu überschreiben, weil dann irgendwo in einer Funktion vielleicht ein Datum erwartet wird und der Code dann "auf die Nase fällt". Und nicht zuletzt ist die Lesbarkeit des Codes wichtig; eine Variable bekommt einen aussagekräftigen Namen, der ihren Inhalt beschreibt. Wenn in einer Variablen namens "Vorname" plötzlich eine Telefonnummer drinsteht, ist das später sehr schwierig nachzuvollziehen.

Ich hoffe, das ist einigermassen verständlich. Am besten wirst Du das Ganze aber verstehen, wenn Du einige Seiten mit Javascript programmiert hast ;-)

Griessli
Irene
 
Zurück
Oben