Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
L'opérateur in
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.
L'opérateurin renvoietrue si une propriété donnée appartient à l'objet donné (directement ou via sa chaîne de prototype).
Dans cet article
Exemple interactif
const car = { make: "Honda", model: "Accord", year: 1998 };console.log("make" in car);// Expected output: truedelete car.make;if ("make" in car === false) { car.make = "Suzuki";}console.log(car.make);// Expected output: "Suzuki"Syntaxe
propriété in nomObjet;Paramètres
Description
Les exemples suivants illustrent certaines utilisation de l'opérateurin.
// Tableauxvar arbres = ["sapin", "hêtre", "cèdre", "chêne", "érable"];0 in arbres; // renvoie true3 in arbres; // renvoie true6 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 truevar ma_chaine = new String("corail");"length" in ma_chaine; // renvoie true// Objets personnalisésvar voiture = { marque: "Honda", modèle: "Accord", année: 1998 };"marque" in voiture; // renvoie true"modèle" in voiture; // renvoie true"marque" in voiture; // renvoie true"Accord" in voiture; // renvoie falseL'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 constructeurString, mais pas une chaîne littérale.
var couleur1 = new String("vert");"length" in couleur1; // renvoie truevar couleur2 = "corail";"length" in couleur2; // génère une erreur (couleur n'est pas un objet String)Utilisation de l'opérateurin avec des propriétés supprimées ou indéfinies
Si une propriété est supprimée avec l'opérateurdelete, l'opérateurin renvoiefalse pour cette propriété.
var voiture = { marque: "Honda", modèle: "Accord", année: 1998 };delete voiture.marque;"marque" in voiture; // renvoie falsevar arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");delete arbres[3];3 in arbres; // renvoie falseSi une propriété est définie àundefined mais n'est pas supprimée, l'opérateurin renverratrue pour cette propriété.
var voiture = { marque: "Honda", modèle: "Accord", année: 1998 };voiture.marque = undefined;"marque" in voiture; // renvoie truevar arbres = new Array("sapin", "hêtre", "cèdre", "chêne", "érable");arbres[3] = undefined;3 in arbres; // renvoie truePropriétés héritées
L'opérateurin renvoietrue pour les propriétés qui appartiennent à la chaîne de prototypes. SI on souhaite la présence d'une propriété non-héritée, on utilisera plutôtObject.prototype.hasOwnProperty().
"toString" in {}; // renvoie trueSpécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-relational-operators> |