Ordre des éléments de boucle dans "pour (... dans ...)" Déclaration
Le "pour (... dans . ..)" La boucle en JavaScript est utilisée pour parcourir les propriétés d'un objet. La question se pose de savoir si ces propriétés sont traitées dans l'ordre dans lequel elles sont déclarées.
Selon John Resig, tous les principaux navigateurs maintiennent l'ordre de définition des propriétés des objets lors des itérations de boucle. Cependant, Chrome et Opera présentent une exception uniquement pour les noms de propriétés non numériques. Ces propriétés sont traitées avant la première propriété numérique dans les deux navigateurs.
Pour simplifier :
Pour exemple :
var obj = { "first": "first", "2": "2", "34": "34", "1": "1", "second": "second" }; for (var i in obj) { console.log(i); };
Dans la plupart des navigateurs, le résultat sera :
1 2 34 first second
Dans Chrome et Opera, le résultat sera :
1 2 34 first second
Malgré le cohérence actuelle dans le comportement du navigateur, la spécification ECMAScript laisse la mécanique de la boucle indéfinie. Par conséquent, il n'est pas recommandé de se fier à l'ordre actuel.
Bonne pratique :
Si l'ordre est crucial pour votre application, il est conseillé d'utiliser un tableau au lieu d'un objet. avec une boucle "for (...) in ...)". Les tableaux préservent l'ordre des éléments de manière plus fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!