Skip to main content

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

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

javascript
Array.isArray(value);

Це стандартний метод ES5, який спеціально створений для цієї перевірки. Повертає true, якщо значення - масив, і false - в інших випадках.

Приклади для Array.isArray()

javascript
Array.isArray([1, 2, 3]); // true Array.isArray([]); // true Array.isArray('text'); // false Array.isArray({ 0: 'a', 1: 'b', length: 2 }); // false Array.isArray(null); // false

Працює коректно навіть між різними контекстами (наприклад, iframe, window тощо). Це робить його єдиним 100% надійним способом.


2. Старий спосіб → instanceof Array

javascript
value instanceof Array

Приклад:

javascript
console.log([1, 2, 3] instanceof Array); // true console.log({} instanceof Array); // false

Недолік: якщо масив створений в іншому вікні або iframe, то перевірка дасть false, тому що в нього інший конструктор Array.

javascript
// приклад (у псевдокоді) iframe.contentWindow.Array !== window.Array;

3. Альтернатива (вручну) → перевірка через Object.prototype.toString

javascript
Object.prototype.toString.call(value) === '[object Array]'

Приклад:

javascript
console.log(Object.prototype.toString.call([1, 2, 3])); // "[object Array]" console.log(Object.prototype.toString.call({})); // "[object Object]"

Працює коректно, але виглядає громіздко: зараз майже завжди замінюється на Array.isArray().


Порівняння всіх способів

МетодПовертаєПлюсиМінуси
Array.isArray()true/falseСучасний, надійнийНемає
instanceof Arraytrue/falseЗрозумілий синтаксисНе працює між різними контекстами
Object.prototype.toString.call()"[object Array]"Працює завждиСкладний запис

Приклади перевірки різних значень

javascript
console.log(Array.isArray([1, 2, 3])); // true console.log(Array.isArray('hello')); // false console.log(Array.isArray({ length: 0 })); // false console.log(Array.isArray(new Array())); // true console.log(Array.isArray(null)); // false

Коротко

Використовуй Array.isArray(value): це найнадійніший і найзрозуміліший спосіб перевірити, чи є значення масивом.

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

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

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