Initialisation plus rapide du tableau : [] vs new Array()
Question : Pourquoi utiliser [] pour initialiser un tableau fonctionne plus rapidement que l'utilisation de new Array() ?
Réponse :
Au-delà des réponses précédentes, examinons cela du point de vue d'un compilateur :
-
Tokenisation :
- [] : indique une initialisation de tableau (par exemple, arr = [];).
- nouveau tableau : plusieurs jetons désignant un appel de fonction (par exemple var arr = new Array();).
-
Création d'objet :
- [] : Mène directement à la création d'un tableau.
- nouveau tableau : nécessite l'invocation du constructeur, la vérification des arguments et éventuellement l'exécution de vérifications de type supplémentaires.
-
Fonction Appels :
- [] : aucune surcharge d'appel de fonction.
- new Array : appelle un constructeur, qui est généralement plus lent que la création directe d'objets.
-
Ambiguïté :
- [] : indique sans ambiguïté l'initialisation du tableau.
- nouveau tableau : nécessite la VM JavaScript pour déterminer le action spécifique (par exemple, nouveau mot-clé, identifiant de tableau).
-
Surcharge :
- [] : crée toujours un array.
- nouveau tableau : peut se comporter différemment en fonction du nombre d'arguments fournis. Cela ajoute encore plus de complexité et de surcharge lors de la création d'objets.
En résumé, l'utilisation de [] pour l'initialisation du tableau est plus rapide car elle ignore le traitement supplémentaire, l'invocation de fonction et la résolution d'ambiguïté requis. par le nouveau tableau. Le compilateur peut créer directement un tableau sans nécessiter que la VM effectue ces étapes supplémentaires.
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!