Как в JavaScript определить, что переменная содержит массив?

контекст: проверка типов данных в JavaScript основной вариант: Array.isArray(variable) — выдаёт true, когда аргумент является массивом альтернативный вариант: variable instanceof Array — корректен, если код не…

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

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

контекст: проверка типов данных в JavaScript основной вариант: Array.isArray(variable) — выдаёт true, когда аргумент является массивом альтернативный вариант: variable instanceof Array — корректен, если код не использует разные фреймворки или окружения также подходит проверка Object.prototype.toString.call(variable) === '[object Array]' — это универсальный подход для объектов, имитирующих массив, эти проверки позволяют отличить их от настоящего массива такая проверка нужна для правильной обработки данных и предотвращения ошибок Array.isArray считается самым надёжным и современным способом и рекомендуется для использования

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

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

Как в JavaScript определить, что переменная содержит массив?

  • контекст: проверка типов данных в JavaScript
  • основной вариант: Array.isArray(variable) — выдаёт true, когда аргумент является массивом
  • альтернативный вариант: variable instanceof Array — корректен, если код не использует разные фреймворки или окружения
  • также подходит проверка Object.prototype.toString.call(variable) === '[object Array]' — это универсальный подход
  • для объектов, имитирующих массив, эти проверки позволяют отличить их от настоящего массива
  • такая проверка нужна для правильной обработки данных и предотвращения ошибок
  • Array.isArray считается самым надёжным и современным способом и рекомендуется для использования

Знание этих методов показывает понимание различий между типами данных и распространённых ловушек в JS.

Развёрнутый ответ

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

В JavaScript для определения того, является ли переменная массивом, лучше всего применять встроенный метод Array.isArray(). Он надёжно проверяет, что переданный объект — именно массив, а не похожая структура вроде объекта с числовыми ключами.

Что важно учитывать

  • Вызов Array.isArray(value) возвращает true, если value является настоящим массивом, и false для всех остальных значений, в том числе объектов, null и undefined.
  • Другой вариант — instanceof Array. Он обычно работает правильно, однако может дать неверный результат для массивов, созданных в разных execution contexts, например в iframe, поскольку их прототипы отличаются.
  • Проверять значение с помощью typeof бессмысленно: для массива этот оператор возвращает "object", а такой результат характерен не только для массивов.

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

В приложениях на React 18+ и Node.js 16+ для проверки входных данных почти всегда используют Array.isArray, особенно при обработке props или ответов API. Это помогает уменьшить количество ошибок из-за неподходящего типа данных и повышает стабильность приложения.

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

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

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

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