Maison >interface Web >js tutoriel >Les tableaux JavaScript sont-ils rares ?

Les tableaux JavaScript sont-ils rares ?

DDD
DDDoriginal
2024-11-15 15:42:03350parcourir

Are JavaScript Arrays Sparse?

Enquête sur la rareté des tableaux JavaScript

Tout comme le bug pseudo-tty dans le noyau AIX, des questions se posent concernant le comportement des tableaux JavaScript en utilisant des indices très variés. Plus précisément, l'instanciation d'un élément à un indice très élevé amènera-t-elle l'interpréteur à instancier tous les éléments intermédiaires ?

Les tableaux JavaScript sont-ils clairsemés ?

La réponse est un oui catégorique. Les tableaux JavaScript sont en fait implémentés en interne sous forme de tables de hachage. Cela signifie que vous pouvez utiliser différents types de données pour les index, notamment des entiers, des chaînes, des flottants et même des objets. Toutes les clés sont converties en chaînes via la méthode toString() avant d'être ajoutées à la table de hachage.

Pour démontrer cela, considérez l'extrait de code suivant :

var array = [];
array[0] = "zero";
array[new Date().getTime()] = "now";
array[3.14] = "pi";

for (var i in array) {
    alert("array["+i+"] = " + array[i] + ", typeof("+i+") == " + typeof(i));
}

Lorsque ce code est exécuté , il affichera le résultat suivant :

array[0] = zero, typeof(0) == string
array[1254503972355] = now, typeof(1254503972355) == string
array[3.14] = pi, typeof(3.14) == string

Comme vous pouvez le constater, le tableau contient des éléments aux indices 0, un grand horodatage et la valeur à virgule flottante 3,14.

Conclusion

Contrairement au bug du noyau AIX, les tableaux JavaScript gèrent de manière transparente les index clairsemés. Leur implémentation sous forme de tables de hachage permet un stockage efficace et flexible d'éléments avec des indices non contigus. En comprenant ce comportement, les développeurs peuvent utiliser en toute confiance les tableaux JavaScript sans craindre de conséquences inattendues.

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!

Déclaration:
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