Sobes.tech
Junior

Welke datastructuren bestaan er in JavaScript?

sobes.tech AI

Antwoord van AI

Eenvoudigste datatypes: String (strings), Number (cijfers), BigInt (grote gehele getallen), Boolean (logische type), Undefined (onbepaalde waarde), Symbol (symbolen), Null (lege waarde).

Complexe datastructuren:

  • Object (object): Collectie van sleutel-waardeparen.
    // Eenvoudig object
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (array): Geordende verzameling van elementen.
    // Array van nummers
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (kaart): Collectie van sleutel-waardeparen, waarbij de sleutels van elk type kunnen zijn en de volgorde van invoer behouden blijft.
    // Map met verschillende sleuteltypen
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'nummer');
    
  • Set (verzameling): Collectie van unieke waarden van elk type.
    // Verzameling van unieke nummers
    const set = new Set([1, 2, 2, 3, 4, 4]); // Bevat [1, 2, 3, 4]
    
  • Typed Arrays (getypte arrays): Arrays van vaste lengte, waarvan de elementen een bepaald numeriek type hebben (bijvoorbeeld Int8Array, Uint8Array, Float32Array).
    // Getypte array van bytes
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (zwakke kaart): Vergelijkbaar met Map, maar de sleutels moeten objecten zijn, en ze verhinderen niet dat de garbage collector de gerelateerde objecten verwijdert.
    // Zwakke kaart
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'gegevens 1');
    
  • WeakSet (zwakke verzameling): Vergelijkbaar met Set, maar de elementen moeten objecten zijn, en ze verhinderen niet dat de garbage collector ze verwijdert.
    // Zwakke verzameling
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Er bestaan ook structuren die in low-level API's worden gebruikt of speciale objecten voorstellen:

  • ArrayBuffer: Vertegenwoordigt een universeel, vaste lengte binaire buffer.
  • DataView: Biedt een low-level interface voor het lezen en schrijven van numerieke gegevens in een ArrayBuffer, waarmee je de offset en bytevolgorde kunt controleren.