Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Перевірка на масив». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`Array.isArray(value)`** - стандартний метод ES5, який перевіряє, чи є значення масивом: повертає `true`, якщо це масив, і `false` в інших випадках. **Ключове:** це єдиний спосіб, що працює коректно навіть між різними контекстами (iframe, window тощо).Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## 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 Array` | `true/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)`: > це **найнадійніший і найзрозуміліший** спосіб перевірити, чи є значення масивом.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.