Array : méthode statique isArray()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode statique Array.isArray() détermine si la valeur passée est un Array.
Exemple interactif
console.log(Array.isArray([1, 3, 5]));
// Résultat attendu : true
console.log(Array.isArray("[]"));
// Résultat attendu : false
console.log(Array.isArray(new Array(5)));
// Résultat attendu : true
console.log(Array.isArray(new Int16Array([15, 33])));
// Résultat attendu : false
Syntaxe
Array.isArray(value)
Paramètres
value-
La valeur dont on veut vérifier le type.
Valeur de retour
true si value est un Array ; sinon, false. false est toujours retourné si value est une instance de TypedArray.
Description
Array.isArray() vérifie si la valeur passée est un Array. Elle effectue un contrôle de marque (branded check en anglais), similaire à l'opérateur in, pour un champ privé initialisé par le constructeur Array().
C'est une alternative plus robuste à instanceof Array, car elle évite les faux positifs et les faux négatifs :
Array.isArray()rejette les valeurs qui ne sont pas de véritables instances deArray, même si elles possèdentArray.prototypedans leur chaîne de prototypes —instanceof Arrayaccepterait ces valeurs, car il vérifie la chaîne de prototypes.Array.isArray()accepte les objetsArrayconstruits dans un autre environnement d'exécution (realm en anglais) —instanceof Arrayretournefalsepour ceux-ci, car l'identité du constructeurArrayest différente entre les environnements.
Voir l'article « Déterminer avec une précision absolue si un objet JavaScript est un tableau » (angl.) pour plus de détails.
Exemples
// Tous les appels suivant renvoient true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array("a", "b", "c"));
Array.isArray(new Array(3));
// Une petite anecdote: Array.prototype lui même est un Array
Array.isArray(Array.prototype);
// Tous les appels suivant renvoient 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));
// Ceci n'est pas un tableau, car il n'a pas été créé avec
// la syntaxe littérale de tableau ou le constructeur Array
Array.isArray({ __proto__: Array.prototype });
instanceof contre Array.isArray()
Lors de la vérification d'une instance de Array, il est préférable d'utiliser Array.isArray() plutôt que instanceof, car cela fonctionne entre différents environnements d'exécution (realm en anglais).
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]
// Vérification correcte pour Array
Array.isArray(arr); // true
// Le prototype de arr est xArray.prototype, qui est un
// objet différent de Array.prototype
arr instanceof Array; // false
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.isarray> |
Compatibilité des navigateurs
Chargement…