[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/in [Back]  [Original]

L'oprateur in - 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

L'oprateur in

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.

L'oprateur in renvoie true si une proprit donne appartient l'objet donn (directement ou via sa chane de prototype).

Dans cet article

Exemple interactif

const car = { make: "Honda", model: "Accord", year: 1998 };

console.log("make" in car);
// Expected output: true

delete car.make;
if ("make" in car === false) {
  car.make = "Suzuki";
}

console.log(car.make);
// Expected output: "Suzuki"

Syntaxe

js
proprit in nomObjet;

Paramtres

proprit

Une expression value en un nombre ou une chane de caractres qui reprsente le nom d'une proprit 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'oprateur in.

js
// Tableaux
var arbres = ["sapin", "htre", "cdre", "chne", "rable"];
0 in arbres; // renvoie true
3 in arbres; // renvoie true
6 in arbres; // renvoie false
"htre" in arbres; // renvoie false (l'indice doit tre spcifi, pas la valeur  cet indice)
"length" in arbres; // renvoie true (length est une proprit des objets Array)
Symbol.iterator in arbres; // renvoie true (les tableaux sont itrables,  partir d'ES6)

// Objets prdfinis
"PI" in Math; // renvoie true
var ma_chaine = new String("corail");
"length" in ma_chaine; // renvoie true

// Objets personnaliss
var voiture = { marque: "Honda", modle: "Accord", anne: 1998 };
"marque" in voiture; // renvoie true
"modle" in voiture; // renvoie true
"marque" in voiture; // renvoie true
"Accord" in voiture; // renvoie false

L'oprande droit doit toujours tre du type objet (et pas un autre type primitif). Par exemple, on peut utiliser une chane cre avec le constructeur String, mais pas une chane littrale.

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

Utilisation de l'oprateur in avec des proprits supprimes ou indfinies

Si une proprit est supprime avec l'oprateur delete, l'oprateur in renvoie false pour cette proprit.

js
var voiture = { marque: "Honda", modle: "Accord", anne: 1998 };
delete voiture.marque;
"marque" in voiture; // renvoie false

var arbres = new Array("sapin", "htre", "cdre", "chne", "rable");
delete arbres[3];
3 in arbres; // renvoie false

Si une proprit est dfinie undefined mais n'est pas supprime, l'oprateur in renverra true pour cette proprit.

js
var voiture = { marque: "Honda", modle: "Accord", anne: 1998 };
voiture.marque = undefined;
"marque" in voiture; // renvoie true

var arbres = new Array("sapin", "htre", "cdre", "chne", "rable");
arbres[3] = undefined;
3 in arbres; // renvoie true

Proprits hrites

L'oprateur in renvoie true pour les proprits qui appartiennent la chane de prototypes. SI on souhaite la prsence d'une proprit non-hrite, on utilisera plutt Object.prototype.hasOwnProperty().

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

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-relational-operators

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page