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

Les tableaux JavaScript sont-ils vraiment contigus ?

DDD
Libérer: 2024-11-15 17:43:02
original
708 Les gens l'ont consulté

Are JavaScript Arrays Really Contiguous?

Tableaux clairsemés en JavaScript

Une idée fausse courante en JavaScript est l'hypothèse selon laquelle les tableaux sont contigus, ce qui signifie qu'ils contiennent tous les éléments de l'index 0 à leur longueur actuelle. Cependant, ce n'est pas le cas : les tableaux JavaScript sont clairsemés.

Lorsqu'un élément est accédé ou défini à l'aide d'un index supérieur à la longueur actuelle, un emplacement vide est créé et le tableau est étendu à la longueur appropriée. taille. Par exemple, si array[Date.getTime()] est utilisé pour définir une valeur, le tableau sera étendu pour contenir des emplacements vides de l'index 0 à l'heure actuelle, même si ces emplacements ne seront pas utilisés.

Implémentation de tables de hachage

Les tableaux clairsemés sont implémentés sous forme de tables de hachage en interne. Les clés, qui peuvent être des entiers, des chaînes, des flottants ou d'autres objets, sont converties en chaînes à l'aide de toString() avant d'être ajoutées au hachage. Cela permet un système d'indexation flexible.

Exemple de test

Pour confirmer la nature clairsemée des tableaux, considérez le code de test 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));
}
Copier après la connexion

Ce code affichera :

array[0] = zero, typeof(0) == string
array[1254503972355] = now, typeof(1254503972355) == string
array[3.14] = pi, typeof(3.14) == string
Copier après la connexion

La syntaxe for...in parcourt les indices définis, démontrant que le tableau est étendu avec des emplacements vides lors de l'accès ou de la définition d'éléments avec des indices non séquentiels.

Différences de navigateur

Différents navigateurs gèrent les tableaux clairsemés de la même manière, avec des tableaux implémentés sous forme de hachage tableaux. Cependant, il est important d'envisager l'utilisation de tableaux clairsemés lorsque vous traitez des index très volumineux, car cela peut avoir un impact sur la consommation de mémoire et les performances.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal