Contrairement au langage Java, les tableaux en JavaScript ont trois caractéristiques :
1. Aucun genre. Les membres d’un tableau peuvent être de n’importe quel type, et le même tableau peut également être composé de nombreux membres de types différents.
2. La longueur est variable. La longueur du tableau peut être modifiée dynamiquement, il n'y a donc aucun problème hors limites avec l'accès au tableau en JavaScript.
3. Discontinuité. Les positions des membres dans le tableau peuvent être continues (0, 1, 2, 3...) ou discontinues. Tout tableau a un attribut nommé longueur. Lorsque les membres du tableau sont continus, la valeur de longueur est cohérente avec le nombre de membres du tableau ; lorsque les membres du tableau sont discontinus, la valeur de longueur est supérieure au nombre de membres du tableau. Par rapport aux tableaux continus, les performances de lecture et d'écriture des tableaux discontinus sont pires.
Expérience :
Comme vous pouvez le voir dans l'exemple ci-dessus, pour un tableau discontinu, JavaScript renverra undéfini lors de l'accès au membre manquant. Si le tableau est continu mais qu'un de ses membres n'est pas défini, le résultat de l'accès au tableau est le même :
Le tableau est discontinu et comporte des membres manquants, et le tableau est contigu mais comporte des membres non définis. Dans les deux cas, le résultat de l'accès au contenu du tableau est le même. Mais il existe tout de même quelques différences subtiles entre les deux, principalement au niveau de l'accès aux clés du tableau :
On peut voir que bien que les résultats obtenus en accédant au contenu soient les mêmes dans ces deux cas, leurs mécanismes internes sont complètement différents : lorsque le tableau est discontinu, un certain membre manque, donc lors de l'accès au membre, JavaScript renvoie undefined ; lorsque le tableau est continu, tous les membres existent, mais les valeurs de certains membres sont spéciales et indéfinies.
Comme vous pouvez le voir dans l'exemple ci-dessus, les tableaux en JavaScript ne sont essentiellement que des objets avec des nombres comme clés et ne sont pas différents des paires clé-valeur ordinaires. En fait, lors des opérations de lecture et d'écriture sur le tableau, JavaScript tentera de convertir le paramètre en un entier positif si la conversion réussit, l'opération sur le tableau sera effectuée (la propriété length du tableau est automatiquement mise à jour). échoue, le paramètre sera converti en caractère. Une fois la chaîne, les opérations de lecture et d'écriture sur les objets ordinaires sont effectuées. Bien entendu, dans l'implémentation de l'interpréteur JavaScript, de nombreuses optimisations de performances ont été apportées à la fonctionnalité des tableaux qui utilisent des nombres comme clés. Par conséquent, en utilisation réelle, si les clés de l'objet sont toutes des nombres, alors en utilisant directement le. L'objet tableau obtiendra de meilleurs résultats.
Pendant le processus de définition d'un tableau, JavaScript autorise les virgules redondantes et les membres manquants du tableau entre deux virgules :
Pour la création de tableaux, JavaScript prend en charge quatre méthodes :
1. Utilisez des littéraux (tels que les expressions entre crochets dans les exemples ci-dessus) pour créer directement des objets tableau.
2. Utilisez le constructeur Array() sans transmettre aucun paramètre. Dans ce cas, un tableau vide est créé, ce qui a le même effet que [].
3. Utilisez le constructeur Array() et transmettez un entier positif comme longueur du tableau. Dans ce cas, JavaScript réservera l'espace mémoire correspondant pour stocker ce tableau. Il convient de noter que les clés du tableau ne sont pas définies pour le moment, c'est-à-dire qu'il n'y a aucun membre dans le tableau. L'effet est le même que [,,,,]
4. Utilisez le constructeur Array() et transmettez les membres du tableau.
Expérience :
var m = new Array(42, 33, 99, "test", {k:99});
console.log(m);//[42, 33, 99, "test", Objet {k=99}]