From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/array/isarray/index.html | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/array/isarray/index.html (limited to 'files/ja/web/javascript/reference/global_objects/array/isarray') diff --git a/files/ja/web/javascript/reference/global_objects/array/isarray/index.html b/files/ja/web/javascript/reference/global_objects/array/isarray/index.html new file mode 100644 index 0000000000..baf6a3d87a --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/array/isarray/index.html @@ -0,0 +1,120 @@ +--- +title: Array.isArray() +slug: Web/JavaScript/Reference/Global_Objects/Array/isArray +tags: + - Array + - ECMAScript5 + - JavaScript + - Method + - Reference + - polyfill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray +--- +
{{JSRef}}
+ +

Array.isArray() メソッドは、渡された値が {{jsxref("Array")}} かどうかを判断します。

+ +
Array.isArray([1, 2, 3]);  // true
+Array.isArray({foo: 123}); // false
+Array.isArray('foobar');   // false
+Array.isArray(undefined);  // false
+
+ +

構文

+ +
Array.isArray(value)
+ +

引数

+ +
+
value
+
チェックするオブジェクト。
+
+ +

返値

+ +

値が {{jsxref("Array")}} の場合は true です。そうでなければ  false を返します。

+ +

解説

+ +

値が {{jsxref("Array")}} の場合は true が返ります。それ以外の場合は false が返ります。

+ +

詳しくは、“Determining with absolute accuracy whether or not a JavaScript object is an array” を参照してください。{{jsxref("TypedArray")}} のインスタンスが与えられると、常に false が返されます。

+ + +

Polyfill

+ +

次のコードを他のコードよりも前に記述する事により、ネイティブで実装されていなくても、Array.isArray() が使用可能になります。

+ +
if (!Array.isArray) {
+  Array.isArray = function(arg) {
+    return Object.prototype.toString.call(arg) === '[object Array]';
+  };
+}
+
+ + +

+ +
// 以下の呼び出しはすべて 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({ __proto__: Array.prototype });
+
+ +

instanceofisArray

+ +

Array のインスタンスをチェックする際、Array.isArrayiframes で動作するので、instanceof よりも推奨されます。

+ +
var iframe = document.createElement('iframe');
+document.body.appendChild(iframe);
+xArray = window.frames[window.frames.length-1].Array;
+var arr = new xArray(1,2,3); // [1,2,3]
+
+// 配列を正しくチェックできます
+Array.isArray(arr);  // true
+// iframe を介して配列を正しくチェックできません
+arr instanceof Array; // false
+
+ +

仕様

+ + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}}
+ +

ブラウザー実装状況

+ +
+ + +

{{Compat("javascript.builtins.Array.isArray")}}

+
+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf