Teil I
Die Sprache
1Werte, Typen und Operatoren
In der Welt der Computer gibt es nichts anderes als Daten. Daten können gelesen, geÀndert und neu erstellt werden, aber es ist nicht möglich, Dinge, die keine Daten sind, auch nur zu erwÀhnen. Alle diese Daten werden als lange Folgen von Bits gespeichert und sind einander dadurch grundsÀtzlich Àhnlich.
Bits sind alle Dinge, die zwei Werte annehmen können, wobei diese Werte gewöhnlich als 0 und 1 dargestellt werden. Innerhalb des Computers nehmen sie die Form einer hohen oder niedrigen elektrischen Ladung, eines starken oder schwachen Signals bzw. eines hellen oder dunklen Punkts auf einer CD an. Jede diskrete Information kann auf eine Folge von Nullen und Einsen reduziert und damit durch Bits dargestellt werden.
Beispielsweise können wir eine Zahl wie 13 durch Bits ausdrĂŒcken. Das funktioniert genauso wie bei Dezimalzahlen, allerdings verwenden wir dazu nur zwei statt zehn verschiedene Ziffern und der Betrag wĂ€chst von rechts nach links mit jeder Stelle um den Faktor 2. Die folgende Darstellung zeigt die Bits, die die Zahl 13 bilden, mit dem Betrag der jeweiligen Stellen darunter:
0 0 0 0 1 1 0 1
128 64 32 16 8 4 2 1
Die BinĂ€rzahl lautet also 00001101. Die von 0 verschiedenen Stellen stehen darin fĂŒr die BetrĂ€ge 8, 4, und 1, deren Addition 13 ergibt.
1.1Werte
Stellen Sie sich ein Meer von Bits vor. Der flĂŒchtige Datenspeicher (Arbeitsspeicher) eines typischen modernen Computers enthĂ€lt ĂŒber 30 Milliarden Bits. Im nichtflĂŒchtigen Speicher (also auf der Festplatte oder einer vergleichbaren Einrichtung) sind es gewöhnlich einige GröĂenordnungen mehr.
Um solche Mengen von Bits handhaben zu können, ohne die Orientierung zu verlieren, mĂŒssen wir sie daher in Blöcke aufteilen, die fĂŒr einzelne Informationen stehen. In einer JavaScript-Umgebung nennen wir diese Blöcke Werte. Obwohl alle Werte aus Bits bestehen, können sie verschiedene Rollen einnehmen, wobei die Rolle eines Werts durch seinen Typ bestimmt wird. Einige Werte sind Zahlen, andere sind Texte, wieder andere Funktionen usw.
Um einen Wert zu erstellen, mĂŒssen Sie lediglich seinen Namen angeben. Das ist praktisch, denn dies bedeutet, dass es nicht nötig ist, Material fĂŒr Werte heranzuschaffen oder gar dafĂŒr zu bezahlen. Sie fordern einfach den Wert an und â Simsalabim â da ist er. NatĂŒrlich werden die Werte in Wirklichkeit nicht so einfach aus dem Hut gezaubert. Jeder Wert muss irgendwo gespeichert werden, und wenn Sie gleichzeitig eine riesige Menge von Werten verwenden, geht Ihnen irgendwann der Speicher aus. GlĂŒcklicherweise ist das jedoch nur dann ein Problem, wenn Sie die Werte wirklich alle gleichzeitig benötigen. Wenn Sie einen Wert nicht brauchen, löst er sich auf und lĂ€sst seine Bits zurĂŒck, die dann als Baumaterial fĂŒr die nĂ€chste Generation von Werten wiederverwendet werden können.
In diesem Kapitel lernen Sie die kleinsten Elemente von JavaScript-Programmen kennen, nÀmlich die einfachen Wertetypen und die Operatoren, die diese Werte bearbeiten können.
1.2Zahlen
Werte, die Zahlen darstellen, sind sogenannte numerische Werte. In einem JavaScript-Programm werden sie gewöhnlich wie folgt geschrieben:
Wenn Sie das in ein Programm eingeben, wird innerhalb des Computerarbeitsspeichers das Bitmuster fĂŒr die Zahl 13 gebildet.
Um einen numerischen Wert zu speichern, verwendet JavaScript stets eine feste Anzahl von Bits, nĂ€mlich 64. Daraus lĂ€sst sich nur eine begrenzte Anzahl von Mustern bilden, was die Menge der darstellbaren Zahlen beschrĂ€nkt. Mit n Dezimalstellen lassen sich 10n Zahlen ausdrĂŒcken, mit 64 BinĂ€rstellen 264 Zahlen, also 18 Trillionen (eine 18 mit 18 Nullen). Das ist eine ganze Menge.
Computerarbeitsspeicher waren frĂŒher viel kleiner, weshalb zur Darstellung von Zahlen gewöhnlich 8 oder 16 Bits verwendet wurden. Dabei war es leicht möglich, versehentlich einen Ăberlauf zu verursachen, also eine Zahl zu bekommen, die nicht in die gegebene Anzahl von Bits passt. Heute haben sogar Computer fĂŒr die Westentasche eine Menge Arbeitsspeicher, sodass es möglich ist, 64-Bit-Blöcke zu verwenden. Um ĂberlĂ€ufe muss man sich nur dann Gedanken machen, wenn mit wirklich astronomischen Zahlen gearbeitet wird.
Allerdings passen nicht alle Zahlen kleiner als 18 Trillionen in den numerischen Typ von JavaScript. Da es auch möglich sein muss, negative Zahlen zu speichern, wird ein Bit zur Angabe des Vorzeichens verwendet. Ein noch gröĂeres Problem ist die Darstellung nicht ganzzahliger Werte. Dann mĂŒssen einige der Bits dafĂŒr genutzt werden, die Position des Kommas festzuhalten. Die gröĂte ganze Zahl, die tatsĂ€chlich gespeichert werden kann, liegt daher im Bereich von 9 Billiarden (15 Nullen), was immer noch angenehm groĂ ist.
Bruchzahlen werden mit einem Punkt (statt Komma) geschrieben:
FĂŒr sehr groĂe und sehr kleine Zahlen kann auch die wissenschaftliche Schreibweise verwendet werden. Dazu schreiben Sie e (fĂŒr Exponent), gefolgt vom Exponenten:
Das entspricht 2,998 Ă 108 = 299.800.000.
Berechnungen mit ganzen Zahlen (sogenannten Integer-Zahlen) kleiner als die zuvor genannten 9 Billiarden sind garantiert prĂ€zise, Berechnungen mit Bruchzahlen im Allgemeinen jedoch nicht. Ebenso wie es nicht möglich ist, Ï durch eine endliche Anzahl von Dezimalstellen genau darzustellen, verlieren viel...