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.