Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: Array.from, performance, memory allocation, push, JavaScript

Чем Array.from с параметром длины отличается от постепенного наполнения массива через push с точки зрения производительности?

Вопрос проверяет понимание производительности создания массивов в JavaScript и разницы между предварительным выделением памяти и динамическим расширением.

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

Array.from с указанием длины создает массив с заранее выделенной памятью, что быстрее, чем постепенное наполнение через push. При push массив может многократно перераспределять память при превышении емкости. Array.from эффективнее для создания массивов известного размера.

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

Разница в производительности между Array.from и push

Когда вы создаете массив с помощью Array.from({length: n}), движок JavaScript сразу выделяет память под n элементов. Это позволяет избежать многократных операций перераспределения памяти, которые происходят при использовании push в цикле.

Как работает push

При вызове push массив динамически расширяется. Если текущая емкость массива недостаточна, движок выделяет новый блок памяти (обычно в 1.5-2 раза больше текущего размера) и копирует все существующие элементы. Это приводит к дополнительным затратам времени и памяти.

// Медленный способ с push
const arr = [];
for (let i = 0; i < 100000; i++) {
  arr.push(i);
}

// Быстрый способ с Array.from
const arr = Array.from({length: 100000}, (_, i) => i);

Практические рекомендации

  • Используйте Array.from с длиной, когда заранее известен размер массива
  • Для динамических коллекций, где размер неизвестен, push остается удобным, но менее производительным
  • В современных движках разница может быть незначительной для малых массивов, но критична для больших (более 10 000 элементов)

Вывод: Array.from с предварительным выделением длины предпочтительнее для создания массивов фиксированного размера, особенно при работе с большими объемами данных, так как минимизирует накладные расходы на перераспределение памяти.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

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

#Array.from

#performance

#memory allocation

#push

#JavaScript

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию