Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: array, object, structure

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

Этот вопрос проверяет знание встроенных структур данных JavaScript, их характеристик и практического применения в различных сценариях разработки.

Короткий ответ

В JavaScript существуют примитивные типы (числа, строки, булевы значения) и объектные структуры данных. Основные структуры включают массивы для упорядоченных коллекций, объекты для хранения ключ-значение пар, множества для уникальных значений и карты для любых типов ключей. Каждая структура имеет свои методы и оптимальные сценарии использования.

Длинный ответ

Примитивные типы данных

Базовые примитивы

  • Number: целые и дробные числа

  • String: текстовые данные

  • Boolean: логические значения true/false

  • Undefined: неопределенное значение

  • Null: явное отсутствие значения

  • Symbol: уникальные идентификаторы

  • BigInt: большие целые числа

Объектные структуры данных

Array (Массив)

javascript

// Создание и работа с массивом
const fruits = ['apple', 'banana', 'orange'];
fruits.push('grape'); // Добавление элемента
fruits.pop(); // Удаление последнего элемента

// Методы массива
fruits.map(fruit => fruit.toUpperCase());
fruits.filter(fruit => fruit.length > 5);
fruits.reduce((acc, fruit) => acc + fruit.length, 0);

Характеристики:

  • Упорядоченная коллекция элементов

  • Индексация с 0

  • Динамический размер

  • Гетерогенные элементы (разные типы)

Object (Объект)

javascript

// Создание объекта
const person = {
    name: 'John',
    age: 30,
    isStudent: false
};

// Доступ к свойствам
console.log(person.name); // John
person.city = 'New York'; // Добавление свойства

// Итерация по свойствам
for (let key in person) {
    console.log(key, person[key]);
}

Характеристики:

  • Коллекция ключ-значение

  • Ключи - строки или Symbol

  • Не гарантирует порядок свойств

  • Прототипное наследование

Set (Множество)

javascript

// Работа с Set
const uniqueNumbers = new Set([1, 2, 3, 2, 1]);
uniqueNumbers.add(4); // Добавление элемента
uniqueNumbers.has(3); // Проверка наличия - true
uniqueNumbers.delete(2); // Удаление элемента

// Преобразование в массив
const arrayFromSet = Array.from(uniqueNumbers);

Характеристики:

  • Коллекция уникальных значений

  • Быстрая проверка наличия элемента

  • Сохраняет порядок добавления

Map (Карта)

javascript

// Использование Map
const userMap = new Map();
userMap.set('id', 123);
userMap.set(42, 'answer');
userMap.set({}, 'object key');

// Получение значений
console.log(userMap.get('id')); // 123
console.log(userMap.size); // 3

// Итерация
for (let [key, value] of userMap) {
    console.log(key, value);
}

Характеристики:

  • Коллекция ключ-значение с любыми типами ключей

  • Сохраняет порядок добавления

  • Лучшая производительность для частых операций добавления/удаления

Специализированные структуры

WeakMap и WeakSet

  • Слабые ссылки (не предотвращают сборку мусора)

  • Ключи только объекты

  • Не итерируемы

  • Используются для метаданных

ArrayBuffer и TypedArrays

  • Бинарные данные

  • Фиксированная длина

  • Используются для работы с файлами, сетью

Сравнение структур

Object vs Map

  • Object: строковые ключи, прототип, JSON-совместимость

  • Map: любые ключи, порядок сохранения, лучшая производительность для частых изменений

Array vs Set

  • Array: дубликаты разрешены, порядок по индексу, методы для манипуляций

  • Set: только уникальные значения, быстрый поиск, простые операции

Вывод: Выбор структуры данных зависит от конкретной задачи - массивы для упорядоченных данных, объекты для структурированной информации, Set для уникальности, Map для сложных ключей.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#array

#object

#structure

Подпишись на React Developer в телеграм