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".

Javascript bietet drei Basis- und zwei besondere Datentypen:

  • Boolean – Wahrheitswerte
  • Number – Zahlen
    • Integer – Ganzzahlige Werte
    • Float – Fliesskommazahlen
  • String – Zeichenketten
  • null
  • undefined

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.
   


Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media EngineeringImpressum und Nutzungsbestimmungen