このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Array.isArray()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Array.isArray() 静的メソッドは、渡された値がArray かどうかを判断します。
In this article
試してみましょう
console.log(Array.isArray([1, 3, 5]));// 予想される結果: trueconsole.log(Array.isArray("[]"));// 予想される結果: falseconsole.log(Array.isArray(new Array(5)));// 予想される結果: trueconsole.log(Array.isArray(new Int16Array([15, 33])));// 予想される結果: false構文
js
Array.isArray(value)引数
valueチェックするオブジェクト。
返値
value がArray の場合はtrue です。そうでなければfalse を返します。value がTypedArray インスタンスであった場合は常にfalse を返します。
解説
Array.isArray() は、渡された値がArray であるかどうかを調べます。これは、in 演算子と同様に、Array() コンストラクターによって初期化されたプライベートフィールドに対して「ブランドチェック」を行います。
これは、誤検知や誤検出を避けることができるため、instanceof Array のより堅牢な代替手段となります。
Array.isArray()は、プロトタイプチェーンにArray.prototypeがある場合でも、実際のArrayインスタンスではない値を拒否します。instanceof Arrayはプロトタイプチェーンを調べるため、これらの値を受け入れます。Array.isArray()は、別の領域で構築されたArrayオブジェクトを受け入れます。instanceof Arrayは、Arrayコンストラクターの ID が領域間で異なるため、これらのオブジェクトに対してfalseを返します。
詳しくは、"Determining with absolute accuracy whether or not a JavaScript object is an array" を参照してください。
例
>Array.isArray() の使用
js
// 以下の呼び出しはすべて true を返しますArray.isArray([]);Array.isArray([1]);Array.isArray(new Array());Array.isArray(new Array("a", "b", "c", "d"));Array.isArray(new Array(3));// あまり知られていないものの Array.prototype は配列ですArray.isArray(Array.prototype);// 以下の呼び出しはすべて 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));// これは配列ではありません。配列リテラルを使用した構文でも、// Array コンストラクターでもないからです。Array.isArray({ __proto__: Array.prototype });instanceof と Array.isArray()
Array のインスタンスをチェックする際、Array.isArray は領域を超えても動作するので、instanceof よりも推奨されます。
js
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]// 配列を正しくチェックできますArray.isArray(arr); // true// arr のプロトタイプは xArray.prototype であり、// Array.prototype とは異なるオブジェクトです。arr instanceof Array; // false仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.isarray> |