Maison > Article > interface Web > Explication sur l'utilisation de l'instruction for in dans les compétences js_javascript
Remarque : Certaines propriétés de l'objet sont marquées comme en lecture seule, permanentes (non supprimables) ou non énumérables de la même manière. Ces propriétés ne peuvent pas être énumérées à l'aide de boucles for/in. Bien que toutes les propriétés définies par l'utilisateur soient énumérables, de nombreuses propriétés internes, y compris toutes les méthodes internes, ne le sont pas. De plus, les objets peuvent hériter des propriétés d'autres objets, et ces propriétés héritées définies par l'utilisateur peuvent être énumérées à l'aide d'une boucle for/in.
Une utilisation commefor(var i=0;i Par exemple : La question de savoir si un objet peut être exhaustif peut être jugée par l'attribut propertyIsEnumerable. La description est la suivante : Si object.propertyIsEnumerable(propname) peut voir la propriété via la boucle for/in Description : Vous pouvez utiliser l'instruction for/in pour parcourir les propriétés « énumérables » d'un objet, mais toutes les propriétés d'un objet ne sont pas énumérables. Les propriétés ajoutées à l'objet via le code JavaScript sont énumérables et les propriétés internes prédéfinies des objets ( telles que les méthodes) ne sont généralement pas énumérables. La méthode propertyIsEnumerable() ne vérifie pas la chaîne de prototypes, ce qui signifie qu'elle s'applique uniquement aux propriétés locales de l'objet et ne peut pas détecter l'énumération des propriétés héritées
var a = ["a","b","c"];
pour(var el dans a){
alert(a[el]);
>
Il s'agit d'énumérer tous les éléments dans a. Bien sûr, l'exemple ci-dessus peut être utilisé
pour(var i=0,len=a.length;i
>
Cette méthode est utilisée pour lister dans une boucle, mais parfois cette méthode peut ne pas fonctionner.
Par exemple :
var a = {"premier":1,"deuxième":2,"troisième":3};
Pour le moment, vous ne pouvez utiliser que in pour épuiser la liste.
propname est une chaîne contenant le nom de l'attribut de l'objet
Si l'objet a une propriété non héritée nommée propname et que la propriété est énumérable (c'est-à-dire qu'elle peut être énumérée à l'aide d'une boucle for/in), retournez true
var o=nouvel Objet();
o.x=3.14;
o.propertyIsEnumerable("x");//true
o.propertyIsEnumerable("y");//false n'a pas la propriété
o.propertyIsEnumerable("toString");//false hérité
Object.prototype.propertyIsEnumerable("toString");//false nonnumerable