Самый надежный способ — использовать Array.isArray():
javascript
Этот метод возвращает true, если переменная является массивом, и false в противном случае, независимо от контекста выполнения или других факторов.
Другие, менее надежные способы включают:
typeof:
javascript
Ненадежен, так как typeof возвращает 'object' для многих типов данных, не только для массивов (объекты, null).
instanceof:
javascript
Может быть ненадежным при работе с фреймами или окнами с различными контекстами выполнения JavaScript, где Array одного контекста отличается от Array другого.
Проверка конструктора:
javascript
Также подвержен проблемам с различными контекстами выполнения.
Сводная таблица:
| Метод | Надежность | Описание |
|---|---|---|
Array.isArray() | Высокая | Специализирован для проверки массивов. |
typeof myVariable | Низкая | Для массивов возвращает 'object'. |
myVariable instanceof Array | Умеренная/Низкая (в зависимости от контекста) | Проверяет принадлежность к классу Array. |
myVariable.constructor === Array | Умеренная/Низкая (в зависимости от контекста) | Проверяет свойство constructor. |
Таким образом, Array.isArray() является предпочтительным и наиболее надежным способом.