Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 4 Programmieren mit JavaScript
  gp 4.1 Variablen
    gp 4.1.1 Namensgebung
    gp 4.1.2 Numerische Variablen
    gp 4.1.3 Zeichenketten
    gp 4.1.4 Boolesche Variablen
    gp 4.1.5 Variablendeklaration
  gp 4.2 Operatoren
    gp 4.2.1 Arithmetische Operatoren
    gp 4.2.2 Boolesche Operatoren
    gp 4.2.3 String-Operatoren
    gp 4.2.4 Umwandlung zwischen den Variablentypen
  gp 4.3 Kontrollstrukturen: Schleifen
    gp 4.3.1 For-Schleifen
    gp 4.3.2 Do-while-Schleife
    gp 4.3.3 While-Schleife
    gp 4.3.4 For-in-Schleife
    gp 4.3.5 Schleifensteuerung
  gp 4.4 Kontrollstrukturen: Fallunterscheidung
    gp 4.4.1 If-Anweisung
    gp 4.4.2 Switch-Anweisung
    gp 4.4.3 Try
  gp 4.5 Datenspeicherung
    gp 4.5.1 Die eval()-Funktion
    gp 4.5.2 Arrays
  gp 4.6 Funktionen
  gp 4.7 Objekte


Galileo Computing

4.5 Datenspeicherung  downtop

Wenn man viele Variablen braucht oder nicht genau weiß, wie viele Variablen man benötigt, ist das Konzept der Standardvariablen nicht flexibel genug. Beispielsweise sollte man sich bei der Benennung der Variablen schon vorher ein Konzept zurechtlegen, um effizient auf die Variablen zuzugreifen. In diesem Abschnitt werden zwei Möglichkeiten vorgestellt, um mehrere Variablen zu speichern.


Galileo Computing

4.5.1 Die eval()-Funktion  downtop

Wieder einmal sollen die Monatsnamen gespeichert werden. Anhand der Nummer des Monats soll auf den Monatsnamen zugegriffen werden. Der Variablenname setzt sich aus dem Wort »Monat« und der Zahl zusammen. Die Variablendeklaration sieht also folgendermaßen aus:

var monat1 = "Januar";
var monat2 = "Februar";
var monat3 = "März";
var monat4 = "April";
var monat5 = "Mai";
var monat6 = "Juni";
var monat7 = "Juli";
var monat8 = "August";
var monat9 = "September";
var monat10 = "Oktober";
var monat11 = "November";
var monat12 = "Dezember";

Die Frage lautet nun: Wenn (beispielsweise in einer Variablen) die Monatsnummer vorliegt, wie erhält man dann daraus den Monatsnamen? Natürlich kann man eine Reihe von if-Anweisungen oder die switch-Anweisung verwenden. Schön wäre es jedoch, wenn man direkt den Variablennamen verwenden könnte. Folgender Code funktioniert natürlich nicht wie beabsichtigt:

document.write("monat" + m);

In der JavaScript-Variablen m steht die Monatsnummer, aber obige Zeile würde die Zeichenkette "Monat", verkettet mit der Monatsnummer, ausgeben, also den Namen der Variablen (etwa "monat3" im März), nicht die Variable selbst. JavaScript bietet eine besondere Funktion, die es ermöglicht, Code auszuführen, der als Zeichenkette vorliegt. Diese Funktion heißt eval(). Als Parameter wird eine Zeichenkette übergeben, und eval() führt den JavaScript-Code aus, der in der Zeichenkette steht. Der folgende Aufruf gibt den Wert der Variablen zurück, nicht ihren Namen:

eval("monat" + m);

Will man also den Monatsnamen auf dem Bildschirm ausgeben, kann man folgende Zeile verwenden:

document.write(eval("monat" + m));

Alternativ dazu kann der document.write()-Befehl auch innerhalb der eval()-Klammern geschrieben werden:

eval("document.write(monat" + m + ")");

Steht in der Variablen m beispielsweise der Wert 3, so würde der eval()-Befehl nach dem Einsetzen der Variablen folgendermaßen aussehen:

eval("document.write(monat3)");

Und das ist genau das, was wir erreichen wollten: Der Wert der Variablen monat3 soll ausgegeben werden.

Wenn in der Anweisung, die als Parameter an eval() übergeben wird, Anführungszeichen vorkommen, müssen Sie die herkömmlichen Regeln beachten, also entweder andere Anführungszeichen verwenden oder Anführungszeichen mit einem Backslash entwerten. Oft ist es jedoch sinnvoll, den Aufruf von eval() möglichst weit innen zu platzieren.

document.write("Der Monatsname lautet "+eval("monat" + m));

Galileo Computing

4.5.2 Arrays  toptop

Die obige Vorgehensweise funktioniert zwar tadellos, ist aber kompliziert, und auch hier werden die Befehle schnell unübersichtlich. In der Praxis werden zumeist so genannte Arrays verwendet. Das sind Variablencontainer, die mehrere Variablen enthalten können. Auf eine einzelne Variable im Container greift man über den Variablennamen und eine Nummer zu. Die Nummer nennt man auch Index. Standardmäßig wird ein Array in JavaScript folgendermaßen definiert:

var a = new Array();
a[1] = "Januar";
a[2] = "Februar";
//usw.

Mit der ersten Zeile, var a = new Array(), wird eine Array-Variable deklariert. Sie können auch Parameter angeben:

gp  Mit einem Parameter geben Sie an, wie viele Array-Elemente zunächst vorgesehen sind. (JavaScript erlaubt es aber, Arrays je nach Bedarf kleiner oder größer zu machen.)
gp  Mit mehreren Parametern geben Sie Werte an, die standardmäßig im Array liegen sollen: var a = new Array("Januar", "Februar", "März");

Der Index, über den auf ein Array-Element zugegriffen wird, steht in eckigen Klammern. JavaScript-Arrays beginnen, wie in vielen anderen Programmiersprachen und in Java übrigens auch, mit 0. Mit obigem Aufruf würde also a[2] auf März gesetzt. Sie müssten die Anweisung folgendermaßen modifizieren, damit a[3] den Wert "März" enthält:

var a = new Array("", "Januar", "Februar", "März");

Eine ganz besondere Kurzform für Arrays gibt es auch – eckige Klammern:

var a = ["Januar", "Februar", "März"];

Sie geben also nur die eckigen Klammern und die Werte an – das spart immerhin ein paar Zeichen. In Kapitel 18 werden Sie diese Kurzform wiederfinden, unter dem Namen JSON.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de