Webdesign mit CSS, HTML und Javascript
Stil mit {stil}
Okt 2008
Javascript Datentypen
Programme führen Berechnungen durch, sortieren Schulfreunde nach den Vornamen ihrer Frauen, prüfen Formulare oder animieren Elemente einer Webseite … um derartige Aufgaben durchzuführen, arbeitet das Programm mit Daten.
Datentypen geben an, ob die Daten Zahlen, Zeichenketten oder Wahrheitswerte sind. Datentypen in Javascript können in zwei Kategorien unterteilt werden: einfache und zusammengesetzte Datentypen. Einfache Datentypen sind Fließkommazahlen wie 5.7 oder Zeichenketten wie "Hallo Welt".
Boole'sche Werte
Der Datentyp Boolean ist ein logischer Wahrheitswert, der nur einen von zwei Werten annehmen kann: true oder false. Man kann sich die Werte auch als „ja“ oder „nein“ vorstellen. Boolesche Werte werden in Bedingungen als Vergleichswerte eingesetzt: Wenn Werte miteinander verglichen werden, ist das Ergebnis true oder false.
var zahl = 15;
if (zahl > 0) {
// Anweisungen
} else {
// andere Anweisungen
}
Der Ausdruck zahl > 0 liefert true. Wenn zahl im Verlauf des Programms geändert wird und den Wert -1 annimmt, wird der Ausdruck zahl > 0 false.
Number: Ganze Zahlen und Fließkommazahlen
Javascript kennt zwei Arten von numerischen Werten: ganze Zahlen und Fließkommazahlen.
Integer speichern ganzzahlige Werte ohne Komma und Dezimalstellen (z.B. 113). Integer können dezimal zur Basis 10, oktal zur Basis 8 und hexadezimal zu Basis 16 dargestellt werden und entweder positiv oder negativ sein. Wie groß ein Integer werden kann, hängt von der Plattform ab (z.B. 10308 oder 10–308 )
var preis = 2;
Fließkommazahlen (Float) enthalten einen Dezimalpunkt (kein Komma!):
var preis = 2.00;
Fließkommazahlen werden mit einen Dezimalpunkt notiert oder als Exponent dargestellt. Der Buchstabe "e" für den Exponenten kann ein kleiner oder ein großer Buchstabe sein.
Strings: Zeichenketten und Hochkommas
Strings sind Zeichenketten aus Wörtern, Zeichen oder Ziffern, die durch einfache oder doppelte Hochkommas vom Programmcode abgegrenzt sind.
var myString = "Hallo Welt!";
Typische Zeichenketten sind "Heinz Lehmann" und "Vluyn ist eine Stadt knapp 20 KM vor der holländischen Grenze." oder "http://www.mediaevent.de".
null und undefined
null ist ein Javascript-Objekt zum Initialisieren und Löschen von Variablen. Eine , so dass die Variable nicht länger einen Wert enthält und der Speicher befreit wird.
var x;
var y = null;
var z = 200;
alert("x " + x + " y " + y + " z " + z);
// Ausgabe: x undefined y null z 200
x = x * 2;
y = y * 2;
z = z * 2;
alert("x " + x + " y " + y + " z " + z);
// Ausgabe: x NaN y 0 z 400
Eine Variable, die deklariert wurde, der aber kein Wert zugewiesen wurde, enthält den Wert undefined. Ihre Benutzung führt nicht zu Laufzeitfehlern, aber zu unbrauchbaren Ergebnissen.
var x;
var z = x + 100;
if (z) {
alert("Es gibt ein z und das ist " + z);
} else {
alert("z hat keinen Wert, sondern ist " + z);
}
// Ausgabe: z hat keinen Wert, sondern ist NaN
Hingegen führt die Benutzung einer Variablen, die nicht deklariert wurde, zu einem Laufzeitfehler:
alert(x);
| Firefox | Fehler: x is not defined Zeile 346 |
| Internet Explorer 6 | x ist undefiniert |
| Opera 9 | Reference to undefined variable x |
| Safari | Can't find variable: x |
Datentyp-Konvertierungen
JavaScript ist eine dynamisch typisierte Sprache – das bedeutet, dass kein Datentyp bei der Deklaration einer Variablen angegeben wird und der Javascript-Interpreter während der Ausführung des Programms bei Bedarf Datentypen automatisch konvertiert. Die folgende Konstruktion führt dementsprechend nicht zu einem Fehler:
var antwort = 42;
…
// Zuweisung eines anderen Datentyps an einer
// anderen Stelle des Programms
antwort = "Warum existiert der Mensch?";
Die Variable antwort enthält bei der Deklaration einen Wert vom Typ Integer. Wenn ihr später im Programm der Stringwert "Warum existiert der Mensch" zugewiesen wird, konvertiert der Javascript-Interpreter den Datentyp von antwort automatisch von Integer zu String.
In Ausdrücken, die numerische Werte und Zeichenketten durch den +-Operator verbinden, konvertiert Javascript numerische Werte zu Zeichenketten:
var frage = "Warum existiert der Mensch? " + 42; // gibt "Warum existiert der Mensch? 42" zurück
Bei anderen Operatoren als dem +-Operator konvertiert Javascript numerische Werte nicht in Zeichenketten:
var num = "42" + 2 // gibt 422 zurück var num = "42" - 2 // gibt 40 zurück
Konventionen
- Addiert ein Skript einen Integer- und einen Float-Wert, ist das Ergebnis eine Fließkommazahl.
- Verbindet ein Skript einen numerischen Wert und einen String durch den +-Operator, ist das Ergebnis in String.
Zusammengesetzte Datentypen
Einfache Datentypen wie Integer und Boolean können immer nur einen einzelnen Wert speichern. Zusammengesetzte Datentypen – auch als „komplexe“ Datentypen und im Weiteren als „Objekte“ bezeichnet – können hingegen mehr als eine Komponente speichern.
Objekte sind Sammelbehälter für Daten der unterschiedlichsten Art. Es gibt drei große Gruppen von Javascript-Objekten:
- Objekte, die von der Sprache zur Verfügung gestellt werden (Array, Boolean, Date, Math, Number, String),
- Objekte, die vom Client-Browser zur Verfügung gestellt werden (window, document, ...),
- Objekte, die der Programmierer konstruiert, z.B. um die Daten eines Adressbuchs zu beschreiben.
