Pourquoi Array.prototype.push renvoie la nouvelle longueur au lieu de données plus utiles
Introduit dans ECMA-262, 3e édition, Array. prototype.push a systématiquement renvoyé un nombre représentant la longueur du tableau mis à jour. Cependant, des questions se posent quant à savoir pourquoi il a été conçu de cette façon au lieu de fournir des informations potentiellement plus précieuses, telles que des références aux éléments ajoutés ou au tableau modifié lui-même.
Contexte historique
Pour comprendre le raisonnement derrière cette décision de conception, nous nous penchons sur l'histoire du push et de ses homologues en Perl. Ajoutées en 1997 au JS1.2 de Netscape 4, ces méthodes ont été inspirées de leurs homologues Perl.
Initialement, push dans JS1.2 était conforme à Perl 4 en renvoyant le dernier élément ajouté. Cependant, dans JS1.3, il a été modifié pour s'aligner sur la convention de Perl 5 consistant à renvoyer la nouvelle longueur du tableau. Ce changement a été reflété dans le code source de jsarray.c, qui fait la distinction entre le comportement de Perl 4 et Perl 5 en fonction de la version JS.
Raisons du renvoi de la longueur du tableau
Cet aperçu historique suggère que la décision de renvoyer la nouvelle longueur du tableau était alignée sur le standard Perl 5, qui a eu une influence sur les premiers développements de JavaScript. De plus, renvoyer la longueur peut avoir été considéré comme un moyen clair et cohérent d'indiquer le résultat de l'opération push, sans introduire de confusion ou d'ambiguïté potentielle.
Considérations alternatives
Renvoyer des références aux éléments ajoutés ou au tableau modifié lui-même a ses mérites. Il pourrait fournir un accès direct aux éléments nouvellement ajoutés ou permettre des opérations en chaîne. Cependant, ces alternatives présentent également des inconvénients potentiels :
Conclusion
The Array.prototype.push La valeur de retour de la méthode de la nouvelle longueur du tableau ne fournit peut-être pas les informations les plus complètes, mais sa conception reste cohérente avec les conventions de Perl et offre une indication claire du résultat de l'opération. Les approches alternatives ont leurs avantages mais aussi des inconvénients potentiels qui ont pu influencer le choix fait aux débuts de JavaScript.
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!