Geschrieben von

JavaScript: Datentypen

WebDev

In JavaScript gehören die Daten und Werte immer einen gewissen Typ an. Jeder Datentypen hat wiederum bestimmte Fähigkeiten. Es gibt insgesamt 7 Datentypen (man kann in JS auch selbst neue Typen erschaffen):

  • undefinded
  • null
  • Boolean
  • String
  • Symbol
  • Number
  • Object

Die ersten 6 werden als primitive Datentypen (also einfache Datentypen) bezeichnet. Object ist ein komplexer Typ.

Einfache vs. komplexe Datentypen

Bevor wir uns die einzelnen Werte etwas näher anschauen, beschäftigen wir uns zunächst mit den Unterschieden dieser 2 Datentyp-Kategorien.

Vereinfacht kann man sagen, dass sich einfache Datentypen nicht weiter zerlegen lassen. Komplexe Datentypen – dazu gehört Object und alle Untertypen davon – bestehen aus einer Vielzahl einfacher Werte. Ansonsten kann man sich merken, dass einfache Werte in Funktionen Kopien des Originals sind, während Objekte als Referenzen fungieren. Kopie heißt in diesem Zusammenhang, dass Änderungen an der Kopie innerhalb der Funktion keine Auswirkung auf die ursprünglichen Daten außerhalb der Funktion haben. Referenz bedeutet, dass Änderungen innerhalb einer Funktion die Referenz auch mitändert.

Hier ein Beispiel. Definieren wir zunächst 2 primitive Datentypen:

let x = 10;
let y = x;
 
x= 20;

Die Variablen x und y sind hier 2 unabhängige Variablen. Wenn wir nun diese 2 Variablen in der Konsole ausgeben, hätten wir folgendes Ergebnis:

x ist 20 und y ist 10. Das liegt an der Unabhängigkeit der beiden Variablen. y kopiert sich “nur” den initialen Wert von x. Wenn wir Objekte benutzen, sieht das anders aus. Hier ein Beispiel:

let x = {value: 10};
let y = x;
 
x.value = 20;

Geben wir nun x und y in der Konsole aus:

Wir sehen, dass beide Variablen den gleichen Wert haben. Das liegt daran, dass das Objekt mit “value: 20” nicht in der Variable x gespeichert wird, sondern wo anders im Speicher. Der Ort bekommt eine Adresse, um diesen direkt ansteuern zu können. Wird also x zu y zugewiesen, dann wird diese Adresse oder besser gesagt Referenz zu y kopiert. Beide Variablen zeigen dann auf die gleiche Adresse im Speicher. Wenn man nun das Objekt ändern (ganz gleich ob wir x oder y benutzen), dann ändert sich der Wert für alle Variablen, da sie “nur” dort hinreferenzieren.

undefined

undefined bedeutet, dass ein Wert leer ist. Mehr dazu findest du in meinem Artikel zu undefined.

null

null bedeutet, dass ein Wert absichtlich fehlt. Das ist auch der feine Unterschied zu undefined. Während undefined sagt, dass der Wert leer ist, sagt null, dass der Wert absichtlich leer ist. Oft steht der Wert an Stellen, an denen ein Objekt optional genutzt werden kann.

Boolean

Hierbei handelt es sich um Wahrheitswerte, von denen es zwei gibt.

  • true
  • false

Boolean-Werte werden immer dort genutzt, wo man abfragen möchte, ob etwas zutrifft oder nicht.

String

Beim String handelt es sich um eine Zeichenkette. Als Zeichenkette können einzelne Zeichen sein oder auch ganze Textpassagen. Strings werden mit einfachen oder doppelten Anführungszeichen geschrieben.

Symbole

Symbol gibt es seit ECMAScript 6. Diese werden eingesetzt, um weitere Properties in Objekten zu definieren und dabei Konflikte zu vermeiden. Symbol ist aufgrund der Einzigartigkeit dafür bestens geeignet.

Number

Hierbei handelt es sich um Zahlen (positiv, negativ, Ganzzahl, Kommazahl).

Object

Bei Objekten handelt es sich um eine Liste mit Namen-Werten-Kombinationen. Hier kannst du mehr allgemein über Objekte erfahren.

Bei Objekten gibt es aber noch eine Reihe an Unterobjekten. Die wichtigsten sind:

  • Funktionen: Hierbei handelt es sich um wiederkehrende Anweisungen, die als Funktion gespeichert und immer wieder aufgerufen werden können.
  • Arrays: Hierbei handelt es sich um eine geordnete Liste. Arrays kommen zum Einsatz, wenn Werte in einer bestimmten Reihenfolge gespeichert werden sollten. Dieser Typ ist an den eckigen Klammern […] zu erkennen. Jeder Wert bekommt einen Index, mit dem man auf die Werte dann zugreifen kann.
  • Reguläre Ausdrücke: Auch unter RegEx bekannt, mit denen man nach bestimmten Informationen in Texten suchen kann.
  • Date, Math, etc. gehören ebenfalls zu den Unterobjekten.