[Beschreibung] [Quelltext] [Erläuterung] [Referenz]

Beschreibung

In diesem Beispiel werden Variablen deklariert, Werte zugewiesen und berechnet und ein Ergebnis ausgegeben.

Quelltext


<script language="JavaScript">
<!--
  var anzahl;
  var name="Schafe";
  anzahl=3;
  var beine=4*anzahl;
  var satz=anzahl+" "+name+" haben "+beine+" Beine";
  document.write(satz);
//-->
</script>

Erläuterung

In diesem Beispiel gibt es Beispiele für einzelne Deklaration, einzelne Zuweisungen sowie kombinierte Deklarationen und Zuweisungen. Es wurde willkürlich zwischen den verschiedenen Formen gewechselt, um alle drei Möglichkeiten darzustellen. Normalerweise würde man eine einheitlichere Vorgehensweise anstreben.
Die Deklaration und Wertzuweisung der Variablen "satz" als eigenständige Anweisungszeile könnte auch entfallen; statt dessen würde dann der Ausdruck direkt als Argument an document.write() übergeben werden.


Referenz

[
var] [Gültigkeitsbereich] [Operatoren] [Ausdrücke]

var

Mit dem Schlüsselwort var werden Variablen deklariert, d.h. als solche bekannt gemacht. Im Gegensatz zu den meisten Programmiersprachen muß bei der Deklaration kein Typ angegeben werden; es wird also nicht festgelegt, ob es sich bei der Variablen um einen ganzzahligen oder gebrochenen Zahlenwert, einen logischen Wert oder eine Zeichenkette handelt. Die Typfestlegung wird automatisch von JavaScript bei jeder Wertzuweisung vorgenommen. Eine Variable kann innerhalb eines Scripts seinen Typ (mehrfach) ändern.
Notwendiger Parameter bei der Deklaration ist natürlich der Name der neuen Variablen. Der Name kann aus Buchstaben und Ziffern sowie dem Sonderzeichen "_" zusammengesetzt werden; das erste Zeichen darf keine Ziffer sein. JavaScript unterscheidet zwischen Groß- und Kleinschreibung: z.B. "beine", "Beine" und "BEINE" sind drei verschiedene Variablen.
Mit einer Deklaration kann, muß aber nicht, eine Wertzuweisung verbunden sein. Die Zeile "var anzahl;" im Beispiel ist eine reine Deklaration ohne Wertzuweisung; bei der Zeile "var beine=4*anzahl;" sind Deklaration und Wertzuweisung kombiniert.

Das Schlüsselwort var zur Variablen-Deklaration ist nicht grundsätzlich erforderlich; beim ersten Auftreten eines bisher nicht verwendeten Variablennamens legt JavaScript die entsprechende Variable auch von allein an. Die Verwendung oder Nicht-Verwendung von var entscheidet jedoch über den Gültigkeitsbereich der Variablen:

Gültigkeitsbereich

Es wird zwischen globalen und lokalen Variablen unterschieden. Lokale Variablen gelten nur innerhalb einer Funktion (Funktionen werden auf Seite 07 eingeführt). Globale Variablen gelten überall innerhalb des aktuellen Dokuments.
Lokale Variablen entstehen, wenn die Variablen mit dem Schlüsselwort var innerhalb einer Funktion definiert werden. Wenn die Variablen durch direkte Wertzuweisung innerhalb einer Funktion definiert werden, entstehen globaleVariablen.
Eine Variable, die außerhalb einer Funktion deklariert wird, ist grundsätzlich eine globale Variable, egal ob var verwendet wurde oder nicht.
Insbesondere, wenn Sie mit mehreren Funktionen arbeiten, die sich gegenseitig aufrufen, müssen Sie genau auf den Gültigkeitsbereich achten.
Es gilt als guter Programmierstil, alle globalen Variablen am Anfang des Scripts (im <head>-Bereich des Dokuments) zu deklarieren.

Operatoren

Zur Berechnung von Ausdrücken stehen eine Reihe von Operatoren zur Verfügung.

Arithmetische (also auf Zahlen anzuwendende) Operatoren sind:
+Addition,
z.B. 4 + 3 = 7
-Subtraktion,
z.B. 4 - 3 = 1
*Multiplikation,
z.B. 4 * 3 = 12
/Division,
z.B. 12 / 3 = 4
%Der Modulo Operator liefert den ganzzahligen Divisionsrest,
z.B. "11 % 3 = 2", denn 11 geteilt durch 3 ergibt 3 Rest 2

Bit-weise logische Operatoren werden auf (die 32-bit Darstellung von) Zahlen oder logischen Werten angewandt:
&logisches UND,
z.B. "true & false = false" oder "9 & 3 = 1", denn die Binärdarstellung 1001 von 9 bitweise UND-verknüpft mit der Binärdarstellung 0011 von 3 ergibt 0001.
|logisches ODER,
z.B. "true | false = true" oder "9 | 3 = 11" (binär 1001 | 0011 = 1011)
^logisches XOR (exklusives Oder: entweder oder, aber nicht beides),
z.B. "true ^ false = true" aber "true ^ true = false" oder "9 ^ 3 = 10" (binär 1001 ^ 0011 = 1010).
>>rechts Shift,
z.B. "9 >> 2 = 2" (binär 0010).
<<links Shift,
z.B. "9 << 2 = 36" (binär 100100).

Logische Operatoren wurden bereits auf Seite 03 vorgestellt.

Als Operator für Zeichenketten steht nur das "+" zur Verfügung, es hängt zwei Zeichenketten aneinander, z.B. "zum "+"Beispiel" = "zum Beispiel".
Wenn eine Zeichenkette mit einem Zahlenwert über das "+" verknüpft wird, so wird der Zahlenwert automatisch in eine Zeichenkette umgewandelt; das Ergebnis ist stets eine Zeichenkette.

Ausdrücke

Ausdrücke entstehen, wenn Variablen oder Werte mittels Operatoren verknüpft werden. Gültige Ausdrücke sind also z.B. "3 + 4", "4 * anzahl", "x / y".
Wenn speziell bei Wertzuweisungen Ergebnisvariable und einer der beiden Operanden identisch sind, stehen abgekürzte Schreibweisen zur Verfügung:
Kurzformentspricht der ausführlichen Form
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y

Wenn noch spezieller der zweite Operand eine Eins ist, geht es noch kürzer:
Kurzformentspricht der ausführlichen Form
x++x = x + 1
x--x = x - 1
das Gleichheitszeichen ist dann also entfallen.
Diese Schreibweise kann auch Bestandteil eines komplexeren Ausdrucks sein; in diesem Fall ist es wichtig, ob das "++" bzw. "--" vor oder hinter dem Operanden steht. Eine Anweisung der Form
x = (a++) * (--b) tut folgendes: der Wert der Variablen b wird um 1 vermindert, das Ergebnis davon wird mit a multipliziert, das Ergebnis der Multiplikation wird x zugewiesen, a wird um 1 erhöht.
Wenn z.B. vor der Ausführung der Anweisung a=3 und b=7 galt, so ist hinterher a=4, b=6 und x=18.

Für Nicht-Programmierer sehr gewöhnungsbedürftig sind bedingte Ausdrücke :
Sie haben die Form "(Bedingung) ? Wert1 : Wert2" und sind folgendermaßen zu interpretieren: Wenn die angegebene Bedingung erfüllt ist liefere Wert1, sonst Wert2. Wenn wir also z.B. für eine weitere Berechnung den kleineren von zwei Werten benötigen, könnte das so aussehen :
Kurzformentspricht der ausführlichen Form
z = (x < y) ? x : y if ( x < y) {
  z = x;
} else {
  z = y;
}


Auf der nächsten Seite beschäftigen wir uns mit dem Datum

home
Erstellt von © Uwe Brinkmann - bingo e.V. - Stand 26.01.97