Boucles For-In et ordre des propriétés d'objet en JavaScript
Lors d'une itération dans les propriétés d'un objet à l'aide d'une boucle "for...in" , il est naturel de se demander si l'ordre de parcours correspond à l'ordre de déclaration d'origine.
Selon John Resig, les implémentations passées de JavaScript dans les principaux navigateurs exécuté cette boucle dans l'ordre de définition de la propriété. Cependant, Chrome a connu une exception : les noms de propriétés non numériques sont extraits dans l'ordre avant la première propriété numérique.
Aujourd'hui, ce comportement varie selon les navigateurs. Les navigateurs modernes adhèrent à l'ordre de définition, à l'exception de Chrome et Opera, qui continuent de mélanger les propriétés non numériques. Cela s'applique à la fois à la boucle "for...in" et à la méthode "Object.keys".
Un exemple illustre ceci :
var obj = { "first": "first", "2": "2", "34": "34", "1": "1", "second": "second" }; for (var i in obj) { console.log(i); }
Sortie dans Chrome et Opera :
"1" "2" "34" "first" "second"
Sortie dans d'autres navigateurs :
"first" "second" "1" "2" "34"
Malgré cette variabilité, il est essentiel de noter que le navigateur les implémentations peuvent changer et compter sur la préservation de l'ordre peut être risqué.
Par conséquent, si l'ordre des propriétés est crucial dans votre application, il est prudent d'utiliser des tableaux car ils fournissent un mécanisme de classement prévisible et stable.
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!