Sobes.tech
Junior

Ce structuri de date există în JavaScript?

sobes.tech AI

Răspuns de la AI

Tipuri de date cele mai simple: String (șiruri), Number (numere), BigInt (numere întregi mari), Boolean (tip logic), Undefined (valoare nedefinită), Symbol (simboluri), Null (valoare nul).

Structuri de date complexe:

  • Object (obiect): Colecție de perechi cheie-valoare.
    // Obiect simplu
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (vector): Colecție ordonată de elemente.
    // Vector de numere
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (hartă): Colecție de perechi cheie-valoare, unde cheile pot fi de orice tip de date și păstrează ordinea inserției.
    // Hartă cu diferite tipuri de chei
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'număr');
    
  • Set (mulțime): Colecție de valori unice de orice tip de date.
    // Mulțime de numere unice
    const set = new Set([1, 2, 2, 3, 4, 4]); // Va conține [1, 2, 3, 4]
    
  • Typed Arrays (array-uri tipizate): Array-uri de lungime fixă, ale căror elemente au un anumit tip numeric (de exemplu, Int8Array, Uint8Array, Float32Array).
    // Array tipizat de octeți
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (hartă slabă): Similar cu Map, dar cheile trebuie să fie obiecte, și nu împiedică colectorul de gunoi să elimine obiectele asociate.
    // Hartă slabă
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'date 1');
    
  • WeakSet (mulțime slabă): Similar cu Set, dar elementele trebuie să fie obiecte, și nu împiedică colectorul de gunoi să le elimine.
    // Mulțime slabă
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Există, de asemenea, structuri utilizate în API-urile de nivel inferior sau care reprezintă obiecte speciale:

  • ArrayBuffer: Reprezintă un buffer binar de lungime fixă.
  • DataView: Oferă o interfață de nivel inferior pentru citirea și scrierea datelor numerice în ArrayBuffer, permițând controlul offset-urilor și ordinii octeților.