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!