Maison > interface Web > js tutoriel > L'ordre des propriétés de boucle « for...in » de JavaScript est-il cohérent entre les navigateurs ?

L'ordre des propriétés de boucle « for...in » de JavaScript est-il cohérent entre les navigateurs ?

Linda Hamilton
Libérer: 2024-12-11 17:34:10
original
408 Les gens l'ont consulté

Is JavaScript's `for...in` Loop Property Order Consistent Across Browsers?

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); }
Copier après la connexion

Sortie dans Chrome et Opera :

"1"
"2"
"34"
"first"
"second"
Copier après la connexion

Sortie dans d'autres navigateurs :

"first"
"second"
"1"
"2"
"34"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal