Sobes.tech
Junior

Milyen adatszerkezetek léteznek a JavaScriptben?

sobes.tech MI

Válasz az MI-től

A legegyszerűbb adattípusok: String (karakterláncok), Number (számok), BigInt (nagy egész számok), Boolean (logikai típus), Undefined (nem definiált érték), Symbol (szimbólumok), Null (üres érték).

Komplex adatstruktúrák:

  • Object (objektum): Kulcs-érték párok gyűjteménye.
    // Egyszerű objektum
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (tömb): Rendezett elemek gyűjteménye.
    // Számok tömbje
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (térkép): Kulcs-érték párok gyűjteménye, ahol a kulcsok bármilyen típusúak lehetnek, és megőrzik a beszúrás sorrendjét.
    // Különböző típusú kulcsokat tartalmazó térkép
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'szám');
    
  • Set (halmaz): Egyedi értékek gyűjteménye bármilyen típusból.
    // Egyedi számok halmaza
    const set = new Set([1, 2, 2, 3, 4, 4]); // Tartalmazza [1, 2, 3, 4]
    
  • Typed Arrays (típusos tömbök): Fix hosszúságú tömbök, amelyek elemei meghatározott numerikus típusúak (pl. Int8Array, Uint8Array, Float32Array).
    // Típusos bájt tömb
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (gyenge térkép): Hasonló a Map-hez, de a kulcsoknak objektumoknak kell lenniük, és nem akadályozzák a szemétgyűjtőt az objektumok eltávolításában.
    // Gyenge térkép
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'adatok 1');
    
  • WeakSet (gyenge halmaz): Hasonló a Set-hez, de az elemeknek objektumoknak kell lenniük, és nem akadályozzák a szemétgyűjtőt az objektumok eltávolításában.
    // Gyenge halmaz
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Ezen kívül léteznek alacsony szintű API-kban használt vagy speciális objektumokat reprezentáló struktúrák:

  • ArrayBuffer: Egy univerzális, fix hosszúságú bináris puffer.
  • DataView: Egy alacsony szintű interfész az adatok olvasására és írására egy ArrayBuffer-ben, lehetővé téve az eltolások és a bájt sorrendjének ellenőrzését.