Sobes.tech
Junior

Welche Datenstrukturen gibt es in JavaScript?

sobes.tech KI

Antwort von AI

Einfachste Datentypen: String (Zeichenketten), Number (Zahlen), BigInt (große ganze Zahlen), Boolean (logischer Typ), Undefined (undefinierter Wert), Symbol (Symbole), Null (Nullwert).

Komplexe Datenstrukturen:

  • Object (Objekt): Sammlung von Schlüssel-Wert-Paaren.
    // Einfaches Objekt
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (Array): Geordnete Sammlung von Elementen.
    // Zahlenarray
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (Karte): Sammlung von Schlüssel-Wert-Paaren, bei denen die Schlüssel jeden Datentyp haben können und die Einfügereihenfolge beibehalten.
    // Karte mit verschiedenen Schlüsseltypen
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'Zahl');
    
  • Set (Menge): Sammlung von einzigartigen Werten jeden Typs.
    // Menge einzigartiger Zahlen
    const set = new Set([1, 2, 2, 3, 4, 4]); // Enthält [1, 2, 3, 4]
    
  • Typed Arrays (typisierte Arrays): Arrays fester Länge, deren Elemente einen bestimmten numerischen Typ haben (z.B. Int8Array, Uint8Array, Float32Array).
    // Typisiertes Byte-Array
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (schwache Karte): Ähnlich wie Map, aber die Schlüssel müssen Objekte sein, und sie hindern die Müllabfuhr nicht daran, die zugehörigen Objekte zu entfernen.
    // Schwache Karte
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'Daten 1');
    
  • WeakSet (schwache Menge): Ähnlich wie Set, aber die Elemente müssen Objekte sein, und sie hindern die Müllabfuhr nicht daran, diese zu entfernen.
    // Schwache Menge
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Es gibt auch Strukturen, die in Low-Level-APIs verwendet werden oder spezielle Objekte darstellen:

  • ArrayBuffer: Repräsentiert einen binären Puffer fester Länge.
  • DataView: Bietet eine Low-Level-Schnittstelle zum Lesen und Schreiben numerischer Daten in einem ArrayBuffer, wobei Verschiebungen und Byte-Reihenfolge kontrolliert werden können.