Visit Mozilla.org

Référence de JavaScript 1.5 Core:Opérateurs:Opérateurs spéciaux:L'opérateur in

Un article de MDC.


Sommaire

[modifier] Résumé

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

Opérateur
Implémentation : JavaScript 1.4

Cet opérateur n'est pas géré par Internet Explorer 5.0 et ses versions antérieures.

[modifier] Syntaxe

nom_propriété_ou_nombre in nom_objet

[modifier] Paramètres

nom_propriété_ou_nombre 
Une chaîne ou expression numérique représentant un nom de propriété ou un indice de tableau.
nom_objet 
Nom d'un objet.

[modifier] Description

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

// Tableaux
var arbres = new Array("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)

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

Un objet doit toujours être spécifié à la droite de l'opérateur in. Par exemple, il est possible de donner 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)

[modifier] 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

Pour plus d'informations concernant l'utilisation de l'opérateur in avec des éléments de tableaux supprimés, consultez delete.