JavaScript-Datentypen und Datenstrukturen
Alle Programmiersprachen haben eingebaute Datenstrukturen, aber diese unterscheiden sich oft von einer Sprache zur anderen. Dieser Artikel versucht, die eingebauten Datenstrukturen in JavaScript aufzulisten und ihre Eigenschaften zu beschreiben. Diese können genutzt werden, um andere Datenstrukturen zu erstellen.
Das Sprachenüberblick bietet eine ähnliche Zusammenfassung der allgemeinen Datentypen, jedoch mit mehr Vergleichen zu anderen Sprachen.
Dynamische und schwache Typisierung
JavaScript ist eine dynamische Sprache mit dynamischen Typen. Variablen in JavaScript sind nicht direkt mit einem bestimmten Werttyp verknüpft und jede Variable kann Werte aller Typen zugewiesen (und neu zugewiesen) bekommen:
let foo = 42; // foo is now a number
foo = "bar"; // foo is now a string
foo = true; // foo is now a boolean
JavaScript ist auch eine schwach typisierte Sprache, was bedeutet, dass es eine implizite Typkonvertierung zulässt, wenn eine Operation unpassende Typen beinhaltet, anstatt Typfehler zu werfen.
const foo = 42; // foo is a number
const result = foo + "1"; // JavaScript coerces foo to a string, so it can be concatenated with the other operand
console.log(result); // 421
Implizite Umwandlungen sind sehr praktisch, können aber subtile Fehler erzeugen, wenn Konvertierungen dort stattfinden, wo sie nicht erwartet werden, oder wo sie in die andere Richtung erwartet werden (zum Beispiel, von Zeichenfolge zu Zahl anstatt von Zahl zu Zeichenfolge). Für Symbole und