[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray [Back]  [Original]

Array : mthode statique isArray() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Array : mthode statique isArray()

Baseline Large disponibilit

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 mthode statique Array.isArray() dtermine si la valeur passe est un Array.

Dans cet article

Exemple interactif

console.log(Array.isArray([1, 3, 5]));
// Rsultat attendu : true

console.log(Array.isArray("[]"));
// Rsultat attendu : false

console.log(Array.isArray(new Array(5)));
// Rsultat attendu : true

console.log(Array.isArray(new Int16Array([15, 33])));
// Rsultat attendu : false

Syntaxe

js
Array.isArray(value)

Paramtres

value

La valeur dont on veut vrifier 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() vrifie si la valeur passe est un Array. Elle effectue un contrle de marque (branded check en anglais), similaire l'oprateur 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 ngatifs :

  • Array.isArray() rejette les valeurs qui ne sont pas de vritables instances de Array, mme si elles possdent Array.prototype dans leur chane de prototypes instanceof Array accepterait ces valeurs, car il vrifie la chane de prototypes.
  • Array.isArray() accepte les objets Array construits dans un autre environnement d'excution (realm en anglais) instanceof Array retourne false pour ceux-ci, car l'identit du constructeur Array est diffrente entre les environnements.

Voir l'article  Dterminer avec une prcision absolue si un objet JavaScript est un tableau  (angl.) pour plus de dtails.

Exemples

js
// 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 mme 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 littrale de tableau ou le constructeur Array
Array.isArray({ __proto__: Array.prototype });

instanceof contre Array.isArray()

Lors de la vrification d'une instance de Array, il est prfrable d'utiliser Array.isArray() plutt que instanceof, car cela fonctionne entre diffrents environnements d'excution (realm en anglais).

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]

// Vrification correcte pour Array
Array.isArray(arr); // true
// Le prototype de arr est xArray.prototype, qui est un
// objet diffrent de Array.prototype
arr instanceof Array; // false

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.isarray

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page