JavaScript/Tutorials/Einstieg/Datentypen
Wir haben Werte in Variablen gespeichert und an alert()
übergeben. Bisher waren das aber nur Zahlen oder Zeichenketten.
In diesem Kapitel lernen Sie, wie Sie verschiedene Arten von Werten (sogenannte Datentypen) unterscheiden können, wie JavaScript damit umgeht, und wie Sie das in Ihren Programmen nutzen können.
Einfache Datentypen
In JavasScript werden gewisse Arten von Werten als primitiv bezeichnet, weil ihre Struktur sehr einfach ist. Dazu zählen z.B. Wahrheitswerte (Boolean), Zahlen, Zeichenketten und Werte, die für „nichts“ stehen.
let a;
a = 17; // Ganzzahl (Integer)
a = 1.7; // Dezimalzahl (Float)
a = true; // Wahrheitswert (Boolean)
a = 'abc'; // Zeichenkette (String)
a = null; // Wert für „nichts“
a = undefined; // Wert für „unbekannt“
a
der Reihe nach immer wieder ein Wert eines neuen Datentyps gegeben. In anderen Programmiersprachen muss bereits beim Anlegen (Deklarieren) einer Variable, wie hier in der ersten Zeile mit dem Schlüsselwort let
, auch der für diese Variable reservierte Datentyp definiert werden. In JavaScript ist das nicht so, denn JavaScript ist nicht streng typisiert, sondern lose typisiert. Dieser Umstand macht JavaScript enorm flexibel, kann aber auf der anderen Seite bedeuten, dass bestimmte Programmfehler unter Umständen nicht so leicht gefunden werden.Das Kapitel JavaScript/Datentyp beschäftigt sich genauer mit diesen Datentypen.
Komplexere Datentypen: Objekte
Manchmal braucht es nicht nur eine Zahl, sondern eine Liste an Zahlen. Eine solche Liste nennt man ein Array. Das gibt es auch in JavaScript:
let fibonacci = [1,1,2,3,5,8,13,21];
fibonacci[5]; // 8
Das Beispiel definiert eine Zahlenliste mit den ersten acht Zahlen der Fibonacci-Reihe. Danach wird auf die Konsole die sechste der Zahlen ausgegeben. Warum nicht die fünfte Zahl? Weil die „Hausnummern“ der Werte in einem Array mit der Zahl null beginnen, also null-basiert durchnummeriert sind, ist die Hausnummer für den sechsten Wert eine acht. Mit den eckigen Klammern nach dem Variablennamen kann man dann auf das jeweilige Element zugreifen.
Ein Array ist ein sogenanntes Objekt und „kann“ deshalb noch viel mehr, als nur eine Liste an Zahlen speichern. Was es alles noch kann, steht im Hauptartikel zu Arrays: JavaScript/Objekte/Array.
let meldung = 'SELFHTML ist die deutschsprachige Dokumentation zu Webtechniken im Internet.';
meldung[5]; // T
Auch bei Zeichenketten kann man mit der Klammern-Schreibweise auf ein einzelnes Zeichen zugreifen, ähnlich wie bei Arrays, allerdings sind Zeichenketten und Arrays ansonsten sehr verschiedene Datentypen.
Eigene Objekte definieren
Wegen seiner dynamischen Natur und seiner Entwicklungsgeschichte gibt es in JavaScript oft verschiedene Wege oder Schreibweisen, wie man ein Objekt anlegen kann. Im obigen Beispiel ist das Array in ausgeschriebener Form notiert, als durch Kommata getrennte Liste an Werten, eingerahmt von einem eckigen Klammernpaar. Das nennt man ein Literal. Mit einem Literal kann man auch ein eigenes Objekt definieren:
const Person = {
name: 'Anna',
alter: 31,
ledig: true
};
Person.name; // Anna
Person.alter; // 31
Person.ledig; // true
Im Beispiel wird die Variable Person
mit dem Schlüsselwort const
als Konstante definiert. Ihr Wert ist ein Objekt, dessen Struktur als Objektliteral abgebildet ist. Im Literal werden drei Eigenschaften des Objekts, sozusagen dem Objekt gehörende Variablen, definiert und mit Werten versehen. Die Werte drei Eigenschaften kann man mit der Punkt-Schreibweise erhalten.
Anfangs sind Objekte vielleicht ein bisschen zu abstrakt, um sie gleich produktiv verwenden zu können. Aber im übernächsten Kapitel wird vielleicht schnell klar, warum sie so nützlich und deswegen wichtig sind.