Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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 statiqueArray.isArray() détermine si la valeur passée est unArray.
Dans cet article
Exemple interactif
console.log(Array.isArray([1, 3, 5]));// Résultat attendu : trueconsole.log(Array.isArray("[]"));// Résultat attendu : falseconsole.log(Array.isArray(new Array(5)));// Résultat attendu : trueconsole.log(Array.isArray(new Int16Array([15, 33])));// Résultat attendu : falseSyntaxe
Array.isArray(value)Paramètres
valueLa valeur dont on veut vérifier le type.
Valeur de retour
true sivalue est unArray ; sinon,false.false est toujours retourné sivalue est une instance deTypedArray.
Description
Array.isArray() vérifie si la valeur passée est unArray. Elle effectue un contrôle de marque (branded check en anglais), similaire à l'opérateurin, pour un champ privé initialisé par le constructeurArray().
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 trueArray.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 ArrayArray.isArray(Array.prototype);// Tous les appels suivant renvoient falseArray.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 ArrayArray.isArray({ __proto__: Array.prototype });instanceof contreArray.isArray()
Lors de la vérification d'une instance deArray, il est préférable d'utiliserArray.isArray() plutôt queinstanceof, 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 ArrayArray.isArray(arr); // true// Le prototype de arr est xArray.prototype, qui est un// objet différent de Array.prototypearr instanceof Array; // falseSpécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.isarray> |