Sobes.tech
Junior

Quelles structures de données existent en JavaScript?

sobes.tech IA

Réponse de l'IA

Types de données simples : String (chaînes), Number (nombres), BigInt (grands nombres entiers), Boolean (type logique), Undefined (valeur indéfinie), Symbol (symboles), Null (valeur nulle).

Structures de données complexes :

  • Object (objet) : Collection de paires clé-valeur.
    // Objet simple
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (tableau) : Collection ordonnée d'éléments.
    // Tableau de nombres
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (carte) : Collection de paires clé-valeur, où les clés peuvent être de n'importe quel type et maintiennent l'ordre d'insertion.
    // Carte avec différents types de clés
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'nombre');
    
  • Set (ensemble) : Collection de valeurs uniques de n'importe quel type.
    // Ensemble de nombres uniques
    const set = new Set([1, 2, 2, 3, 4, 4]); // Contiendra [1, 2, 3, 4]
    
  • Typed Arrays (tableaux typés) : Tableaux de longueur fixe, dont les éléments ont un type numérique défini (par exemple, Int8Array, Uint8Array, Float32Array).
    // Tableau typé de bytes
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (carte faible) : Semblable à Map, mais ses clés doivent être des objets, et ils n'empêchent pas le ramasse-miettes de supprimer les objets associés.
    // Carte faible
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'données 1');
    
  • WeakSet (ensemble faible) : Semblable à Set, mais ses éléments doivent être des objets, et ils n'empêchent pas le ramasse-miettes de supprimer ces objets.
    // Ensemble faible
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Il existe également des structures utilisées dans les API de bas niveau ou représentant des objets spéciaux :

  • ArrayBuffer : Représente un tampon binaire de longueur fixe.
  • DataView : Fournit une interface de bas niveau pour lire et écrire des données numériques dans un ArrayBuffer, permettant de contrôler les décalages et l'ordre des octets.