Назад к вопросам
Junior
82
questionbank

Какие структуры данных существуют в JavaScript?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Простейшие типы данных: String (строки), Number (числа), BigInt (большие целые числа), Boolean (логический тип), Undefined (неопределенное значение), Symbol (символы), Null (пустое значение).

Сложные структуры данных:

  • Object (объект): Коллекция пар ключ-значение.
    // Простой объект
    const user = {
      name: 'Иван',
      age: 30
    };
    
  • Array (массив): Упорядоченная коллекция элементов.
    // Массив чисел
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (карта): Коллекция пар ключ-значение, где ключи могут быть любого типа данных и сохраняют порядок вставки.
    // Карта с различными типами ключей
    const map = new Map();
    map.set('name', 'Петр');
    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, позволяя контролировать смещения и порядок байтов.