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