Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-array.isarray

Совместимость с браузерами

Десктоп Мобильные Сервер
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API