Sobes.tech
Junior

Какви структури от данни съществуват в JavaScript?

sobes.tech AI

Отговор от AI

Най-простите типове данни: String (низове), Number (числа), BigInt (големи цели числа), Boolean (логически тип), Undefined (неопределена стойност), Symbol (символи), Null (празна стойност).

Сложни структури от данни:

  • Object (обект): Колекция от двойки ключ-стойност.
    // Прост обект
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (масив): Подредена колекция от елементи.
    // Масив от числа
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (карта): Колекция от двойки ключ-стойност, където ключовете могат да бъдат от всякакъв тип данни и запазват реда на вмъкване.
    // Карта с различни типове ключове
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'число');
    
  • Set (множество): Колекция от уникални стойности от всякакъв тип.
    // Множество от уникални числа
    const set = new Set([1, 2, 2, 3, 4, 4]); // Ще съдържа [1, 2, 3, 4]
    
  • Typed Arrays (типизирани масиви): Масиви с фиксирана дължина, чиито елементи имат определен числов тип (например Int8Array, Uint8Array, Float32Array).
    // Типизиран масив от байтове
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (слаба карта): Подобна на Map, но ключовете трябва да бъдат обекти, и не пречат на събирача на боклука да премахне свързаните с тях обекти.
    // Слаба карта
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'данни 1');
    
  • WeakSet (слабо множество): Подобна на Set, но елементите трябва да бъдат обекти, и не пречат на събирача на боклука да премахне тези обекти.
    // Слабо множество
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Съществуват и структури, използвани в нискоуровневите API или представляващи специални обекти:

  • ArrayBuffer: Представлява универсален, фиксиран по дължина двоичен буфер.
  • DataView: Предоставя нискоуровнев интерфейс за четене и писане на числови данни в ArrayBuffer, позволявайки контрол върху отместванията и реда на байтовете.