Array.isArray()
Baseline Широко доступен
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна в браузерах с июля 2015 года.
Статический метод Array.isArray() определяет, является ли переданное значение Array.
Попробуйте
console.log(Array.isArray([1, 3, 5]));
// Expected output: true
console.log(Array.isArray("[]"));
// Expected output: false
console.log(Array.isArray(new Array(5)));
// Expected output: true
console.log(Array.isArray(new Int16Array([15, 33])));
// Expected output: false
Синтаксис
Array.isArray(value)
Параметры
-
value - Значение для проверки.
Возвращаемое значение
true, если value является Array; в противном случае — false. false всегда возвращается, если value является экземпляром TypedArray.
Описание
Array.isArray() проверяет, является ли переданное значение Array. Он выполняет проверку по метке, аналогичную оператору in, для закрытого поля, инициализированного конструктором Array().
Это более надежная альтернатива instanceof Array, поскольку она позволяет избежать ложных срабатываний и пропусков:
-
Array.isArray()отклоняет значения, которые не являются фактическими экземплярамиArray, даже если они имеютArray.prototypeв своей цепочке прототипов —instanceof Arrayпримет их, поскольку он проверяет цепочку прототипов. -
Array.isArray()принимает объектыArray, созданные в другом окружении (realm) —instanceof Arrayвозвращаетfalseдля них, поскольку идентичность конструктораArrayотличается в разных окружениях.
Подробнее см. статью "Determining with absolute accuracy whether or not a JavaScript object is an array".
Примеры
Использование Array.isArray()
// all following calls return true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array("a", "b", "c", "d"));
Array.isArray(new Array(3));
// Little known fact: Array.prototype itself is an array:
Array.isArray(Array.prototype);
// all following calls return false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray("Array");
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
// This is not an array, because it was not created using the
// array literal syntax or the Array constructor
Array.isArray({ __proto__: Array.prototype });
instanceof против Array.isArray()
При проверке экземпляра Array предпочтительнее использовать Array.isArray(), чем instanceof, поскольку он работает в разных окружениях.
const iframe = document.createElement("iframe");
document.body.appendChild(iframe);
const xArray = window.frames[window.frames.length - 1].Array;
const arr = new xArray(1, 2, 3); // [1, 2, 3]
// Correctly checking for Array
Array.isArray(arr); // true
// The prototype of arr is xArray.prototype, which is a
// different object from Array.prototype
arr instanceof Array; // false
Спецификации
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
isArray |
4 |
12 |
4 |
10.5 |
5 |
18 |
4 |
14 |
5 |
1.0 |
4.4 |
5 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Polyfill
Array.isArrayвcore-js - es-shims polyfill
Array.isArray - Руководство по индексированным коллекциям
Array
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray