Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

L'opérateur in

L'opérateur in renvoie true si la propriété donnée appartient à l'objet donné.

Syntaxe

propriété in nomObjet

Paramètres

propriété
Une expression évaluée en un nombre ou une chaîne de caractères qui représente le nom d'une propriété ou l'indice d'un tableau.
nomObjet
Le nom de l'objet qu'on souhaite inspecter.

Description

Les exemples suivants illustrent certaines utilisation de l'opérateur in.

// Tableaux
var arbres = ["sapin", "hêtre", "cèdre", "chêne", "érable"];
0 in arbres        // renvoie true
3 in arbres        // renvoie true
6 in arbres        // renvoie false
"hêtre" in arbres  // renvoie false (l'indice doit être spécifié, pas la valeur à cet indice)
"length" in arbres // renvoie true (length est une propriété des objets Array)
Symbol.iterator in arbres // renvoie true (les tableaux sont itérables, à partir d'ES6)

// Objets prédéfinis
"PI" in Math           // renvoie true
var ma_chaine = new String("corail");
"length" in ma_chaine  // renvoie true

// Objets personnalisés
var voiture = {marque : "Honda", modèle : "Accord", année : 1998};
"marque" in voiture  // renvoie true
"modèle" in voiture  // renvoie true

L'opérande droit doit toujours être du type objet (et pas un autre type primitif). Par exemple, on peut utiliser une  chaîne créée avec le constructeur String, mais pas une chaîne littérale.

var couleur1 = new String("vert");
"length" in couleur1 // renvoie true
var couleur2 = "corail";
"length" in couleur2 // génère une erreur (couleur n'est pas un objet String)

Utilisation de l'opérateur in avec des propriétés supprimées ou indéfinies

Si une propriété est supprimée avec l'opérateur delete, l'opérateur in renvoie false pour cette propriété.

var voiture = {marque : "Honda", modèle : "Accord", année : 1998};
delete voiture.marque;
"marque" in voiture  // renvoie false

var arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");
delete arbres[3];
3 in arbres // renvoie false

Si une propriété est définie à undefined mais n'est pas supprimée, l'opérateur in renverra true pour cette propriété.

var voiture = {marque : "Honda", modèle : "Accord", année : 1998};
voiture.marque = undefined;
"marque" in voiture  // renvoie true

var arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");
arbres[3] = undefined;
3 in arbres // renvoie true

Propriétés héritées

L'opérateur in renvoie true pour les propriétés qui appartiennent à la chaîne de prototypes.

"toString" in {}; // renvoie true

Spécifications

Spécification État Commentaires
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Relational Operators' dans cette spécification.
Projet  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Opérateurs relationnels' dans cette spécification.
Standard  
ECMAScript 5.1 (ECMA-262)
La définition de 'Opérateur in' dans cette spécification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
La définition de 'Opérateurs in' dans cette spécification.
Standard Définition initiale. Implémentée avec JavaScript 1.4.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, teoli, Jeremie, BenoitL
 Dernière mise à jour par : SphinxKnight,