Le cas curieux d'Array.prototype.push : pourquoi il renvoie la longueur au lieu de quelque chose de plus pratique
Array.prototype.push est un Méthode JavaScript qui étend un tableau avec un ou plusieurs éléments. Contrairement à ses homologues plus intuitifs qui renvoient l'élément nouvellement ajouté ou le tableau modifié lui-même, push renvoie curieusement la nouvelle longueur du tableau. Ce comportement non conventionnel a soulevé des questions sur les décisions de conception qui ont conduit à sa mise en œuvre actuelle.
Contexte historique
Pour découvrir la justification de ce choix de conception, nous approfondissons le histoire de poussée. Comme le raconte le centre de communication de TC39, le push a fait ses débuts dans JavaScript 1.2 (Netscape 4) en 1997, inspiré des fonctions de manipulation de tableaux de Perl. Initialement, push renvoyait le dernier élément poussé, conformément aux conventions Perl 4. Cependant, dans JavaScript 1.3 (Netscape 4.06), push a modifié son comportement pour s'aligner sur Perl 5, renvoyant la nouvelle longueur du tableau.
Rationalisation
Pourquoi renvoyait-il la nouvelle longueur jugée plus appropriée que de renvoyer l'élément ajouté ou le tableau muté ? Cette question reste malheureusement sans réponse. Les archives historiques fournissent peu de détails sur le raisonnement derrière cet écart par rapport à Perl 4. Cependant, nous pouvons spéculer sur certaines considérations potentielles :
Options alternatives
Si les concepteurs n'avaient pas opté pour le retour de la nouvelle longueur, d'autres options aurait pu être envisagé :
Conclusion
Bien que la raison spécifique derrière Array.prototype.push qui renvoie la nouvelle longueur ne soit pas tout à fait claire, ses origines historiques en Perl et les avantages potentiels de simplicité et de cohérence peuvent avoir influencé sa mise en œuvre. Bien que cette décision de conception ne corresponde pas parfaitement aux attentes des développeurs, elle fournit un comportement bien défini et cohérent pour manipuler les tableaux en 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!