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 July 2015.
Die statische Methode Array.isArray()
bestimmt, ob der übergebene Wert ein Array
ist.
Probieren Sie es aus
Syntax
Array.isArray(value)
Parameter
value
-
Der zu überprüfende Wert.
Rückgabewert
true
, wenn value
ein Array
ist; andernfalls false
. false
wird immer zurückgegeben, wenn value
eine Instanz von TypedArray
ist.
Beschreibung
Array.isArray()
überprüft, ob der übergebene Wert ein Array
ist. Es prüft nicht die Prototypenkette des Wertes und ist nicht auf den Array
-Konstruktor angewiesen, an den es angehängt ist. Es gibt true
für jeden Wert zurück, der mit der Array-Literalsyntax oder dem Array
-Konstruktor erstellt wurde. Dies macht es sicher, es mit Objekten über verschiedene Realms hinweg zu verwenden, wo die Identität des Array
-Konstruktors unterschiedlich ist und daher instanceof Array
fehlschlagen würde.
Lesen Sie den Artikel "Determining with absolute accuracy whether or not a JavaScript object is an array" für weitere Details.
Array.isArray()
lehnt auch Objekte mit Array.prototype
in seiner Prototypenkette ab, die keine tatsächlichen Arrays sind, welche instanceof Array
akzeptieren würde.
Beispiele
Verwenden von 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 vs. Array.isArray()
Beim Überprüfen von Array
-Instanzen wird Array.isArray()
gegenüber instanceof
bevorzugt, da es über verschiedene Realms hinweg funktioniert.
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
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-array.isarray |
Browser-Kompatibilität
BCD tables only load in the browser