Benutzer:Rolf b/VerwendenVonVariablen

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Verwendung von Variablen[Bearbeiten]

Neben diesen Warnmeldungen können Sie auch Dialogfenster nutzen, in denen der Anwender Benutzereingaben vornimmt.

Die Eingabe des Benutzers wollen wir in einer sogenannten Variablen abspeichern. Eine Variable ist sozusagen ein einfacher Behälter für Daten – man kann Daten hineinschreiben und sie zu einem späteren Zeitpunkt im Programm wieder auslesen und damit arbeiten. Bevor wir uns das Dialogfenster anschauen, wollen wir erst einmal einen Blick auf Variablen werfen.

2. Eingabe und Verarbeitung eines Namens ansehen …
 var wert;
 wert = 'Welt';
 var gruß = 'Hallo';
 var ausgabe = gruß + wert;
 alert(gruß + wert);

Dieses kleine Programm zeigt ebenfalls "Hallo Welt" an, im Gegensatz zu oben wird dieser Gruß aber nun aus Variablen aufgebaut. Die erste Zeile deklariert eine Variable mit einem von uns gewählten Namen wert, mit anderen Worten: JavaScript reserviert uns unter diesem Namen einen Speicherplatz. Was wir darin speichern wollen, also z.B. Texte oder Zahlen, müssen wir nicht festlegen. Variablen in JavaScript sind nicht auf einen Datentyp festgelegt.

In der zweiten Zeile geben wir unserer Variablen einen Wert, in diesem Fall die Zeichenkette 'Welt'. Das Gleichheitszeichen, dass Sie hier sehen, ist nur indirekt das Gleichheitszeichen aus der Mathematik. Man spricht hier von einer Wertzuweisung, die eigentlich von rechts nach links zu lesen ist: "Nimm die Zeichenkette 'Hallo' und speichere sie in der Variablen wert".

Deklaration und Wertzuweisung können in einem Befehl zusammengefasst werden, wie die nächste Zeile zeigt. Ein ß ist als Teil eines Variablennamens übrigens völlig in Ordnung. Unser Gruß lautet 'Hallo'.

Nun wollen wir diese Variablen benutzen. Als Wert der dritten Variable ausgabe geben wir einen sogenannten Ausdruck an (im Mathematikunterricht haben Sie dafür vielleicht einmal den Begriff „Term“ gehört). Mit dem Pluszeichen verbinden man eher das Addieren von Zahlen, aber JavaScript gibt ihm eine weitere Bedeutung, wenn damit Zeichenketten „addiert“ werden - man nennt das eine Verkettung. Die Inhalte von gruß und wert werden zu einer langen Zeichenkette zusammengefügt und an ausgabe zugewiesen. Mit alert(ausgabe) wird das Ergebnis schließlich angezeigt.

Nun können wir uns ein interaktiveres Beispiel anschauen, wo ein Dialogfenster verwendet wird.

2. Eingabe und Verarbeitung eines Namens ansehen …
 var eingabe,
     begrüßung;
 eingabe = prompt('Bitte geben Sie Ihren Namen ein!','');
 begrüßung = 'Hallo, ' + eingabe;
 alert(begrüßung);

Dieses Programm fragt den Namen des Benutzers ab und begrüßt ihn dann persönlich.

Mit einem var Befehl kann man mehrere Variablen gleichzeitig deklarieren. Das geschieht hier mit eingabe und begrüßung.

Danach wird - in der dritten Zeile - die Browser-Funktion prompt aufgerufen, die ähnlich wie alert ein kleines Fenster öffnet und darin einen Text anzeigt. Zusätzlich zu alert wird noch ein einzeiliges Eingabefeld angeboten, in dem der Anwender einen Text eingeben kann.

Bei Aufruf von prompt wird Ihr JavaScript-Programm unterbrochen, die Funktion wartet, bis der Anwender OK oder Abbrechen drückt. Eine fertig ausgeführte Funktion hat - wie eine Variable - einen Wert, dieser Wert wird an eingabe zugewiesen. Danach wird eine Begrüßung zusammengesetzt und ausgegeben.

Variablen und Ausdrücke können überall dort verwendet werden, wo man auch feste Werte angeben kann. Man muss das Ergebnis eines Ausdrucks auch nicht in einer Variablen speichern, bevor man ihn verwendet. Darum kann man die sehr ausführliche Schreibweise der letzen Beispiele deutlich verkürzen.

Eine erste Verkürzung unseres interaktiven Programms könnte so aussehen:

2. Eingabe und Verarbeitung eines Namens ansehen …
 var eingabe = prompt('Bitte geben Sie Ihren Namen ein!','');
 alert('Hallo, ' + eingabe);
Die Deklaration von eingabe und das Abfragen des Namens wurden zusammengefasst. Die Begrüßung wird nicht mehr zwischengespeichert, statt dessen wird das Ergebnis der Verkettung gleich an alert übergeben.

Damit ist das Ende noch nicht erreicht. Für unser Beispiel wird der Wert, der in eingabe gespeichert ist, nicht weiter gebraucht. Darum könnte man es auch so schreiben:

2. Eingabe und Verarbeitung eines Namens ansehen …
 alert('Hallo, ' + prompt('Bitte geben Sie Ihren Namen ein!',''));
Alles in einer Zeile

In dieser Kompaktheit beginnt die Lesbarkeit des Programms schon zu leiden. Sie werden in Zukunft sicherlich auf Programme stoßen, wo geschachtelte Konstrukte dieser Art gang und gäbe sind; es ist nicht unüblich, dass das Ergebnis eines Funktionsaufrufs gleich an die nächste Funktion weitergereicht wird. Auch für JavaScript gilt der alte Vorwurf, den man an Sprachen wie C oder APL gerichtet hat: Es erlaubt einzeilige Programme von nahezu beliebiger Komplexität. Man sollte aber gerade am Anfang mehr Wert auf Lesbarkeit als auf Kompaktheit legen.

Empfehlung:
  • Deklarieren Sie Variablen immer mit var, da Sie sonst globale Variablen erzeugen, die später evtl. ungewollte Konsequenzen nach sich ziehen.
  • Geben Sie Variablen selbsterklärende Namen, damit Sie in ein paar Wochen wieder erkennen können, was diese Variable beinhalten soll.
  • Schachteln Sie Ausdrücke nicht zu tief. Das Speichern von Zwischenergebnissen in Variablen kann die Fehlersuche erleichtern.
  • Beachten Sie die Regeln für selbstvergebene Namen.