Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Webbrowser
3 JavaScript einbauen
4 Programmieren mit JavaScript
5 Datum
6 Zufall
7 Browserinformationen
8 Fenster
9 Formulare
10 Frames und Iframes
11 Grafiken
12 Cookies
13 Objekte und Arrays
14 Ereignisbehandlung
15 Fehlerbehandlung
16 DOM
17 DHTML und CSS
18 AJAX
19 XML
20 Web Services
21 AJAX-Frameworks
22 Plugins
23 Multimedia
24 Java
25 Serverseitige Technologien
26 JavaScript goes .NET
27 Code schützen
28 Top Secret: Passwortschutz
29 Signierte Skripte
30 JavaScript und Sicherheit
31 Navigation
32 Warenkorb
33 JavaScript-Bibliotheken
34 Referenz
35 Quellen im Web
36 Die Zukunft von JavaScript
Index
Download: - ZIP, ca. 9,2 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / JavaScript und AJAX | vor >>
JavaScript und AJAX von Christian Wenz Das umfassende Handbuch
JavaScript und AJAX 839 S., mit DVD, 39,90 Euro Galileo Computing ISBN 3-89842-859-1 |
| Kapitel 4 Programmieren mit JavaScript
|  | 4.1 Variablen
|  |  | 4.1.1 Namensgebung
|  |  | 4.1.2 Numerische Variablen
|  |  | 4.1.3 Zeichenketten
|  |  | 4.1.4 Boolesche Variablen
|  |  | 4.1.5 Variablendeklaration
|  | 4.2 Operatoren
|  |  | 4.2.1 Arithmetische Operatoren
|  |  | 4.2.2 Boolesche Operatoren
|  |  | 4.2.3 String-Operatoren
|  |  | 4.2.4 Umwandlung zwischen den Variablentypen
|  | 4.3 Kontrollstrukturen: Schleifen
|  |  | 4.3.1 For-Schleifen
|  |  | 4.3.2 Do-while-Schleife
|  |  | 4.3.3 While-Schleife
|  |  | 4.3.4 For-in-Schleife
|  |  | 4.3.5 Schleifensteuerung
|  | 4.4 Kontrollstrukturen: Fallunterscheidung
|  |  | 4.4.1 If-Anweisung
|  |  | 4.4.2 Switch-Anweisung
|  |  | 4.4.3 Try
|  | 4.5 Datenspeicherung
|  |  | 4.5.1 Die eval()-Funktion
|  |  | 4.5.2 Arrays
|  | 4.6 Funktionen
|  | 4.7 Objekte
## 4.2 Operatoren Durch Operatoren wird eine gewisse Anzahl von Variablen miteinander kombiniert. Beispiele für Operatoren sind die Grundrechenarten. Durch den Plus-Operator werden zwei Zahlen miteinander kombiniert, und als Ergebnis erhält man die Summe dieser beiden Zahlen. Man unterscheidet – auch je nach Typ der beteiligten Variablen – verschiedene Arten von Operatoren. ### 4.2.1 Arithmetische Operatoren Diese Art von Operatoren arbeitet mit numerischen Variablen. Sie sollten also sicherstellen, dass auch wirklich Zahlenvariablen vorliegen, sonst könnten Sie eine Fehlermeldung erhalten. In Abschnitt 9.7 finden Sie Techniken, wie man Zahlenvariablen als solche erkennen kann. Die folgende Tabelle zeigt alle arithmetischen Operatoren anhand eines Beispiels.1

Tabelle 4.2 Arithmetische Operatoren

Operator | Beschreibung | Beispiel | Ergebnis (Wert von a)
+ | Addition | a = 7 + 4 | 11
- | Substraktion | a = 7 – 4 | 3
* | Multiplikation | a = 7 * 4 | 28
/ | Division | a = 7 / 4 | 1.75
% | Modulo (Restrechnung)1 | a = 7 % 4 | 3
- | Negation | b = 7 a = –b | –7
Will man eine Variable um einen bestimmten Wert erhöhen, kann man sich des folgenden Konstrukts bedienen:
    AnzahlAuflagen = AnzahlAuflagen + 1;
Der Variablen AnzahlAuflagen wird als Wert der alte Wert dieser Variablen plus fünf zugewiesen. Der Wert der Variablen wird also de facto um eins erhöht. In der Praxis kommt es sehr häufig vor, dass der Wert einer Variablen um genau eins erhöht oder verringert werden soll; für diesen Fall sieht JavaScript eine Abkürzung vor:
| AnzahlAuflagen++ erhöht den Wert der Variablen um eins.
| AnzahlAuflagen-- verringert den Wert der Variablen um eins (etwa, wenn eine Auflage eingestampft werden müsste?!).
Die Operatoren ++ und -- können auch direkt vor dem Variablennamen stehen. Der Unterschied liegt in der Reihenfolge, in der diese Operation im Vergleich mit anderen Operationen ausgeführt werden soll. Am Beispiel des Operators ++ soll das einmal durchexerziert werden; -- verhält sich analog. Das Endergebnis des Standalone-Ausdrucks (des »alleinstehenden« Ausdrucks)
    AnzahlAuflagen++;
hat zunächst denselben Effekt (nämlich: Erhöhung um 1) wie
    ++AnzahlAuflagen;
Einen Unterschied stellt man jedoch fest, wenn der Ausdruck bei einer Zuweisung verwendet wird:
    var Auflagen = 7;
    var Anzahl = ++AnzahlAuflagen;
    var Anzahl2 = AnzahlAuflagen++;
Welchen Wert hat Anzahl, welchen Wert hat Anzahl2? Die (vielleicht etwas überraschende) Antwort lautet: Anzahl hat den Wert 8, Anzahl2 hat auch den Wert 8. Betrachten Sie zunächst die zweite Zeile:
    var Anzahl = ++AnzahlAuflagen;
Der ++-Operator steht vor dem Variablennamen. Das bedeutet hier, dass zunächst diese Operation (AnzahlAuflagen um eins erhöhen) ausgeführt und dann der neue Wert (8) der Variablen Anzahl zugewiesen wird. Bei der dritten Zeile ist es genau andersherum:
    var Anzahl2 = AnzahlAuflagen++;
Zuerst wird der Variablen Anzahl2 der (aktuelle) Wert von AnzahlAuflagen zugewiesen, dann wird der Wert von AnzahlAuflagen um eins vergrößert. Wenn man den Wert einer Variablen nicht um exakt eins erhöhen oder verringern will, kann man sich einer anderen Abkürzung bedienen. Diese Abkürzung existiert für jede der vier Grundrechenarten sowie für den Modulo-Operator:

Tabelle 4.3 Abkürzungen für arithmetische Operationen

Operator | Bedeutung | Langform | Kurzform
+= | Addition | a = a + b | a += b
–= | Subtraktion | a = a – b | a –= b
*= | Multiplikation | a = a * b | a *= b
/= | Division | a = a / b | a /= b
%= | Modulo | a = a % b | a %= b
Auch in JavaScript gilt: Punktrechnung geht vor Strichrechnung. Multiplikationen und Divisionen werden also vor Additionen und Subtraktionen ausgeführt. Der folgende Ausdruck liefert daher 7 und nicht 9:
    var PunktVorStrich = 1 + 2 * 3;
### 4.2.2 Boolesche Operatoren Mit Logikoperatoren (oder booleschen Operatoren) kann man Wahrheitswerte miteinander verknüpfen. Die Bedeutung der Operatoren ist die mathematische Bedeutung, nicht unbedingt die umgangssprachliche Bedeutung. Aus diesem Grund werden die einzelnen Operatoren hier explizit vorgestellt. Nur, wenn beide (bzw. alle) beteiligten Variablen den Wert true haben, liefert die Operation true zurück, ansonsten false.
    var t = true;
    var f = false;
    var bool1 = t && f;  //liefert false
    var bool2 = t && t;  //liefert true
Ist eine der beteiligten Variablen true, so liefert die Operation true zurück. Das Ergebnis ist nur dann false, wenn alle Variablen den Wert false haben. Hier liegt ein Unterschied zum Deutschen vor, denn dort bedeutet »oder« eher »entweder-oder«: Das Ergebnis ist nur dann true, wenn genau eine der beteiligten Variablen den Wert true hat.
    var t = true;
    var f1 = false;
    var f2 = false;
    var bool1 = t || f1 || f2;  //liefert true
    var bool2 = f1 || f2;       //liefert false
Der Negationsoperator macht true zu false und false zu true.
    var t = true;
    var f = false;
    var bool1 = !t;  //liefert false
    var bool2 = !f;  //liefert true
Wie Sie bereits gesehen haben, genügt genau eine Variable mit dem Wert true, damit das Ergebnis einer Oder-Verknüpfung ganz sicher den Wert true hat. Analog liefert eine Und-Verknüpfung auf jeden Fall den Wert false, wenn eine Variable den Wert false hat. JavaScript – zumindest die existierenden Implementierungen – benutzt hier das Prinzip der so genannten Short Evaluation (wörtlich: kurze Auswertung). Bei einer Und- bzw. Oder-Verknüpfung werden die beteiligten Variablen von links nach rechts durchgegangen. Sollte bei einer dieser Variablen aufgrund ihres Werts das Ergebnis der gesamten Operation schon feststehen, wird der Rest nicht weiter ausgewertet. Hier ein Beispiel:
    var f = false;
    var bool = f && andereVariable;
Auf andereVariable wird hier gar nicht erst zugegriffen: Die Variable f ist false, damit kann die &&-Verknüpfung (logisches Und) nur false als Ergebnis haben. Vergleichsoperatoren werden meistens bei Zahlenwerten verwendet. Auch bei Zeichenketten sind diese Vergleiche möglich. Hier richtet sich die Rangfolge der einzelnen Zeichen (welches Zeichen ist »größer« als ein anderes?) nach dem ASCII-Code des Zeichens.

Tabelle 4.4 Vergleichsoperatoren

Operator | Beschreibung | Beispiel | Ergebnis (Wert für a)
== | Gleich | a = (3 == 4) a = ("Java" == "JavaScript") | false
!= | Ungleich | a = (3 != 4) a = ("Java" != "JavaScript") | true
> | Größer als | a = ( 3 > 4) | false
< | Kleiner als | a = (3 < 4 ) | true
>= | Größer oder gleich | a = ( 3 >= 4) | false
<= | Kleiner oder gleich | a = (3 <= 4 ) | true
Eine häufige Fehlerquelle ist die Verwechslung der Zuweisung = mit dem Vergleichsoperator ==. Ab JavaScript Version 1.3 gibt der Interpreter eine Fehlermeldung aus, wenn offensichtlich ein Vergleich durchgeführt werden soll, aber der Zuweisungsoperator verwendet wird. ### 4.2.3 String-Operatoren Auch mit Zeichenketten kann man »rechnen«; man kann zwei Zeichenketten aneinander hängen. Hierzu wird ebenfalls der Plus-Operator (+) verwendet:
    var vorne = "Galileo";
    var hinten = "Press";
    var Verlag = vorne + " " + hinten;  //liefert "Galileo Press"
Ansonsten kann man mit Zeichenketten nicht rechnen. Dennoch sollen an dieser Stelle noch drei Möglichkeiten vorgestellt werden, um mit Zeichenketten etwas anzufangen:
| Zeichenkette.length: Liefert die Anzahl der Zeichen in einer Zeichenkette zurück.
| Zeichenkette.charAt(x): Liefert das Zeichen an der Position x in der Zeichenkette zurück. Dabei beginnt die Zählung bei 0, das vierte Zeichen erhält man also mit Zeichenkette.charAt(3).
| Zeichenkette.substring(start, ende): Liefert eine Teilzeichenkette zurück, und zwar ab dem Zeichen an der Position start (die Zählung beginnt wieder bei 0) und bis zu dem Zeichen vor dem Zeichen an der Position ende.
Hierzu ein kleines Beispiel. In den Variablen a und b stehen das erste Zeichen der Zeichenkette und die folgenden Zeichen:
    var z = "Galileo press";
    var a = z.charAt(0);  //a == "G"
    var b = z.substring(1, z.length);  //b == "alileo Press"
### 4.2.4 Umwandlung zwischen den Variablentypen Die vorgestellten Operatoren können auch dazu verwendet werden, Umwandlungen zwischen den einzelnen Variablentypen durchzuführen. JavaScript ist in Sachen Variablentypus nicht so strikt wie andere Programmiersprachen. Eine Variable kann auch ihren Typ während des Programmablaufs ändern. Beispielsweise werden Sie in einem späteren Kapitel feststellen, dass Formulareingaben stets als Zeichenketten vorliegen. Wenn Sie sich aber sicher sind, dass die Zeichenkette eine korrekt formatierte Zahl enthält, können Sie JavaScript dazu zwingen, die Variable als Zahlenwert zu betrachten. Der Trick besteht darin, die Variable mit eins zu multiplizieren (oder 0 zu addieren). Eine Multiplikation kann nur mit Zahlenwerten durchgeführt werden, so dass JavaScript die Variable in eine Zahl umwandelt – und eine Multiplikation mit eins ändert am Wert der Zahl auch nichts. Außerdem ist es manchmal notwendig, eine boolesche oder eine numerische Variable in eine Zeichenkette umzuwandeln. Diesmal muss der Konkatenationsoperator (Verkettungsoperator), das Plus, verwendet werden. Indem eine Variable mit einer leeren Zeichenkette konkateniert (verkettet) wird, erhält man als Ergebnis eine Zeichenkette, ändert aber ansonsten den Wert der Variablen nicht.
    var AnzahlAuflagen = "7";
    AnzahlAuflagen *= 1;  //Zeichenkette in Zahl
    var wahrheitswert = true;
    wahrheitswert += "";  //Wahrheitswert in Zeichenkette
    var Anzahl = 8;
    Anzahl += "";  //Zahl in Zeichenkette
JavaScript führt zwar eine automatische Typenkonvertierung durch, aber nicht immer in die gewünschte Richtung:
    var siebenundvierzig = "47";
    var summe = siebenundvierzig + 11;  // "4711", nicht 58
JavaScript stellt auch ein paar Funktionen zur Verfügung, um Umwandlungen durchzuführen. Durch parseInt() wird eine Zeichenkette in eine (ganzzahlige) Zahl umgewandelt, durch parseFloat() in eine Fließkommazahl. Innerhalb der runden Klammern wird die Zeichenkette angegeben:
    var zahl1 = parseInt("47");  //liefert 47 als Zahl
    var zahl2 = parseInt("47.11");  //liefert 47,11 dezimal
Hierauf gehen wir an späterer Stelle noch einmal en detail ein.
<< zurück | <top> | vor >>
Zum Katalog
JavaScript und AJAX bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| JavaScript und AJAX - Das Video-Training
| Webseiten programmieren und gestalten
| XHTML, HTML und CSS
| CSS-Praxis
| AJAX
| PHP 5 und MySQL 5
| TYPO3 4.0
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

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