Sobes.tech
Junior

¿Qué estructuras de datos existen en JavaScript?

sobes.tech AI

Respuesta de la IA

Tipos de datos más simples: String (cadenas), Number (números), BigInt (números enteros grandes), Boolean (tipo lógico), Undefined (valor indefinido), Symbol (símbolos), Null (valor nulo).

Estructuras de datos complejas:

  • Object (objeto): Colección de pares clave-valor.
    // Objeto simple
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (arreglo): Colección ordenada de elementos.
    // Array de números
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (mapa): Colección de pares clave-valor, donde las claves pueden ser de cualquier tipo de dato y mantienen el orden de inserción.
    // Mapa con diferentes tipos de claves
    const map = new Map();
    map.set('name', 'Peter');
    map.set(1, 'number');
    
  • Set (conjunto): Colección de valores únicos de cualquier tipo de dato.
    // Conjunto de números únicos
    const set = new Set([1, 2, 2, 3, 4, 4]); // Contendrá [1, 2, 3, 4]
    
  • Typed Arrays (arreglos tipados): Arreglos de longitud fija, cuyos elementos tienen un tipo numérico definido (por ejemplo, Int8Array, Uint8Array, Float32Array).
    // Arreglo tipado de bytes
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (mapa débil): Similar a Map, pero sus claves deben ser objetos, y no impiden que el recolector de basura elimine los objetos asociados.
    // Mapa débil
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'datos 1');
    
  • WeakSet (conjunto débil): Similar a Set, pero sus elementos deben ser objetos, y no impiden que el recolector de basura elimine los objetos.
    // Conjunto débil
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

También existen estructuras utilizadas en API de bajo nivel o que representan objetos especiales:

  • ArrayBuffer: Representa un búfer binario de longitud fija.
  • DataView: Proporciona una interfaz de bajo nivel para leer y escribir datos numéricos en un ArrayBuffer, permitiendo controlar desplazamientos y orden de bytes.