Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Expressions et opérateurs
  5. L'opérateur in

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 EnglishAlways switch to English

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).

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

js
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érateurin.

js
// 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 false

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 constructeurString, mais pas une chaîne littérale.

js
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é.

js
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 false

Si une propriété est définie àundefined mais n'est pas supprimée, l'opérateurin renverratrue pour cette propriété.

js
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 true

Proprié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().

js
"toString" in {}; // renvoie true

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-relational-operators

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp