Heim >Web-Frontend >js-Tutorial >Warum gibt Array.prototype.push die aktualisierte Array-Länge anstelle informativerer Daten zurück?
Warum Array.prototype.push die neue Länge anstelle nützlicherer Daten zurückgibt
Eingeführt in ECMA-262, 3. Auflage, Array. prototyp.push hat durchweg eine Zahl zurückgegeben, die die aktualisierte Array-Länge darstellt. Es stellt sich jedoch die Frage, warum es auf diese Weise konzipiert wurde, anstatt potenziell wertvollere Informationen bereitzustellen, wie z. B. Verweise auf angehängte Elemente oder das geänderte Array selbst.
Historischer Kontext
Um die Gründe für diese Designentscheidung zu verstehen, vertiefen wir uns in die Geschichte von Push und seinen Gegenstücken in Perl. Diese Methoden wurden 1997 zu JS1.2 von Netscape 4 hinzugefügt und waren von ihren Perl-Gegenstücken inspiriert.
Anfangs entsprach Push in JS1.2 Perl 4, indem das zuletzt hinzugefügte Element zurückgegeben wurde. In JS1.3 wurde es jedoch verschoben, um der Konvention von Perl 5 zur Rückgabe der neuen Array-Länge zu entsprechen. Diese Änderung spiegelte sich im jsarray.c-Quellcode wider, der je nach JS-Version zwischen Perl 4- und Perl 5-Verhalten unterscheidet.
Gründe für die Rückgabe der Array-Länge
Diese historische Erkenntnis legt nahe, dass die Entscheidung, die neue Länge des Arrays zurückzugeben, mit dem Perl 5-Standard im Einklang stand, der Einfluss auf die frühe Entwicklung von JavaScript hatte. Darüber hinaus wurde die Rückgabe der Länge möglicherweise als klare und konsistente Möglichkeit angesehen, das Ergebnis des Push-Vorgangs anzugeben, ohne potenzielle Verwirrung oder Mehrdeutigkeit hervorzurufen.
Alternative Überlegungen
Die Rückgabe von Verweisen auf angehängte Elemente oder das geänderte Array selbst hat seine Vorzüge. Es könnte direkten Zugriff auf die neu hinzugefügten Elemente ermöglichen oder verkettete Vorgänge ermöglichen. Allerdings weisen diese Alternativen auch potenzielle Nachteile auf:
Fazit
Das Array.prototype.push Der Rückgabewert der neuen Array-Länge der Methode liefert möglicherweise nicht die umfassendsten Informationen, aber ihr Design entspricht den Perl-Konventionen und bietet einen klaren Hinweis auf das Ergebnis der Operation. Alternative Ansätze haben ihre Vorteile, aber auch potenzielle Nachteile, die möglicherweise die in den frühen Tagen von JavaScript getroffene Wahl beeinflusst haben.
Das obige ist der detaillierte Inhalt vonWarum gibt Array.prototype.push die aktualisierte Array-Länge anstelle informativerer Daten zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!