Skip to main content

Перевірка на масив

1. Array.isArray(value) - сучасний і надійний спосіб

javascript
Array.isArray([1, 2, 3]); // true Array.isArray("text"); // false Array.isArray({}); // false
  • Працює у всіх сучасних браузерах і Node.js.
  • Правильно визначає масиви навіть з інших контекстів (наприклад, з iframe).
  • Це рекомендований спосіб перевірки.

2. instanceof Array - старий, але робочий

javascript
[1, 2, 3] instanceof Array; // true "abc" instanceof Array; // false

Однак:

  • Якщо масив створений в іншому вікні або фреймі, результат може бути хибним, тому що у кожного контексту свій конструктор Array.
javascript
// Приклад проблеми: const arr = window.frames[0].Array; arr instanceof Array; // false

3. Перевірка через Object.prototype.toString.call()

Цей спосіб універсальний для будь-яких типів (часто використовують у бібліотеках).

javascript
Object.prototype.toString.call([]); // "[object Array]" Object.prototype.toString.call({}); // "[object Object]" Object.prototype.toString.call("hi"); // "[object String]"

4. Чому не typeof

javascript
typeof []; // "object"

typeof не підходить, тому що масив - це об'єкт, і результат завжди "object".


Підсумок

МетодПовертаєНадійністьКоментар
Array.isArray(value)правильно5/5найкращий варіант
value instanceof Arrayправильно3/5залежить від контексту
Object.prototype.toString.call(value)правильно4/5універсальний, але громіздкий
typeof value"object"1/5не розрізняє масиви

Висновок: Завжди використовуй Array.isArray(value) - це найточніший і найкоротший спосіб.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.