Какой станет длина массива [1, 2, 3], если записать значение по индексу 7?

Длина массива после записи по индексу 7 Контекст: массивы в JavaScript Начальная длина: 3 (элементы [1,2,3]) Запись по индексу 7 увеличит размер массива Итоговая длина составит 8 (индексы от 0 до 7) Индексы с 3 по 6…

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

Что ответить на собеседовании

Длина массива после записи по индексу 7 Контекст: массивы в JavaScript Начальная длина: 3 (элементы [1,2,3]) Запись по индексу 7 увеличит размер массива Итоговая длина составит 8 (индексы от 0 до 7) Индексы с 3 по 6 будут содержать undefined В результате массив станет разреженным Такое поведение обусловлено динамической природой массивов JS Практическое значение: это может сказываться на итерации и производительности

Подробный разбор

Ответ с пояснениями

Длина массива после записи по индексу 7

  • Контекст: массивы в JavaScript
  • Начальная длина: 3 (элементы [1,2,3])
  • Запись по индексу 7 увеличит размер массива
  • Итоговая длина составит 8 (индексы от 0 до 7)
  • Индексы с 3 по 6 будут содержать undefined
  • В результате массив станет разреженным
  • Такое поведение обусловлено динамической природой массивов JS
  • Практическое значение: это может сказываться на итерации и производительности

Подробный ответ

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

Если записать значение в массив из трёх элементов [1, 2, 3] по индексу 7, его длина автоматически вырастет до 8. Причина в том, что в JavaScript длина массива всегда определяется как наибольший индекс плюс 1, даже когда элементы между началом и этим индексом не инициализированы.

Ключевые моменты

  • Когда значение присваивается индексу, выходящему за текущую длину массива (например, arr[7] = value), длина обновляется до 8.
  • Промежуточные индексы с 3 по 6 остаются "пустыми" (i.e. неинициализированными): они существуют, но при обращении к ним возвращается undefined.
  • Именно этим массивы JavaScript отличаются от классических статических массивов в языках наподобие C++, где размер задаётся заранее и не изменяется.

Практический контекст

Такой механизм удобен для динамического формирования данных, однако требует осторожности: очень большие индексы создают «разреженные» массивы и могут снижать производительность. Если нужны плотные данные, обычно применяют методы массива или структуры с фиксированным размером, например TypedArray.

Если требуется рассмотреть аналогичное поведение в других языках, уточните — я дополню ответ.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку