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

Как определить, что переменная является массивом? В JavaScript массив представляет собой объект, обладающий специальными свойствами и поведением. Наиболее надёжный вариант — вызвать метод Array.isArray(variable): если…

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

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

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

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

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

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

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

Такой подход позволяет быстро определить массив и снизить риск ложных результатов.

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

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

В JavaScript стандартным и наиболее надёжным способом проверки переменной на принадлежность к массивам считается использование метода Array.isArray(). Для массива он возвращает true, а для любого другого значения — false. Классическая альтернатива — проверка с помощью instanceof Array. Однако она способна вернуть некорректный результат, если массив был создан в другом фреймворке или iframe, то есть в ином контексте выполнения.

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

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

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

В больших проектах на React 18+ и Node.js 14+ обычно применяют именно Array.isArray(): этот вызов эффективен, быстр и помогает избежать ошибок в сценариях с iframe, модулями и сериализацией. Он также удобен для проверки внешних данных, например ответов API или аргументов функций.

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

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

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

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