Heim > Artikel > Web-Frontend > Warum gibt Array.prototype.push die Länge und nicht das angehängte Element zurück?
Der seltsame Fall von Array.prototype.push: Warum es Länge anstelle von etwas Bequemerem zurückgibt
Array.prototype.push ist ein JavaScript-Methode, die ein Array um ein oder mehrere Elemente erweitert. Im Gegensatz zu seinen intuitiveren Gegenstücken, die das neu hinzugefügte Element oder das geänderte Array selbst zurückgeben, gibt push seltsamerweise die neue Länge des Arrays zurück. Dieses unkonventionelle Verhalten hat Fragen zu den Designentscheidungen aufgeworfen, die zu seiner aktuellen Umsetzung geführt haben.
Historischer Kontext
Um die Gründe für diese Designentscheidung aufzudecken, befassen wir uns mit der Geschichte von Push. Wie der Kommunikationshub von TC39 berichtet, debütierte Push 1997 in JavaScript 1.2 (Netscape 4), inspiriert von den Array-Manipulationsfunktionen von Perl. Zunächst gab push das zuletzt gepushte Element zurück und befolgte dabei die Konventionen von Perl 4. In JavaScript 1.3 (Netscape 4.06) änderte Push jedoch sein Verhalten, um es an Perl 5 anzupassen, und gab die neue Länge des Arrays zurück.
Rationalisierung
Warum wurde die neue Länge zurückgegeben? Länge als angemessener erachtet als die Rückgabe des angehängten Elements oder des mutierten Arrays? Diese Frage bleibt leider unbeantwortet. Die historischen Aufzeichnungen liefern kaum Details zu den Gründen für diese Abweichung von Perl 4. Wir können jedoch über einige mögliche Überlegungen spekulieren:
Alternative Optionen
Hätten sich die Designer nicht für die Rückgabe der neuen Länge entschieden, gäbe es andere Optionen hätte in Betracht gezogen werden können:
Fazit
Obwohl die spezifischen Gründe für die Rückgabe der neuen Länge durch Array.prototype.push nicht ganz klar sind, könnten ihre historischen Ursprünge in Perl und die potenziellen Vorteile von Einfachheit und Konsistenz sie beeinflusst haben Durchführung. Obwohl diese Designentscheidung möglicherweise nicht perfekt den Erwartungen der Entwickler entspricht, bietet sie ein klar definiertes und konsistentes Verhalten für die Bearbeitung von Arrays in JavaScript.
Das obige ist der detaillierte Inhalt vonWarum gibt Array.prototype.push die Länge und nicht das angehängte Element zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!