Heim  >  Artikel  >  Web-Frontend  >  Warum gibt Array.prototype.push die neue Array-Länge anstelle nützlicher Daten zurück?

Warum gibt Array.prototype.push die neue Array-Länge anstelle nützlicher Daten zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 09:43:03894Durchsuche

Why Does Array.prototype.push Return the New Array Length Instead of Useful Data?

Warum Array.prototype.push die neue Länge anstelle nützlicher Daten zurückgibt

Array.prototype.push, eingeführt in ECMA-262, 3. Edition, gibt eine Zahl zurück, die die neue Länge des Arrays darstellt, nachdem Elemente angehängt wurden. Diese Designwahl hat die Entwickler verwirrt, da es sich nicht um direkt nützliche Informationen handelt.

Historische Beweise aus den Kommunikationskanälen von TC39 geben Aufschluss über diese Entscheidung. In JS1.2 (Netscape 4) wurde push der Perl-Funktion nachempfunden und verhielt sich ähnlich wie Perl 4, indem das zuletzt gepushte Element zurückgegeben wurde. Mit JS1.3 (Netscape 4.06) wurde Push jedoch einer Änderung unterzogen, um sich an die Konventionen von Perl 5 anzupassen, und gibt nun die neue Array-Länge zurück.

Laut dem ursprünglichen jsarray.c-Quellcode war diese Änderung beabsichtigt:

/*
 * If JS1.2, follow Perl4 by returning the last thing pushed.  Otherwise,
 * return the new array length.
 */

Diese Designwahl könnte auf dem Wunsch beruhen, Konsistenz über alle JavaScript-Versionen hinweg zu gewährleisten und sich an das etablierte Verhalten von Perl 5 anzupassen. Auch wenn die Rückgabe der neuen Länge möglicherweise nicht sofort von Nutzen ist, sorgt sie doch für Klarheit über die Größe des Arrays nach dem Push-Vorgang.

Das obige ist der detaillierte Inhalt vonWarum gibt Array.prototype.push die neue Array-Länge anstelle nützlicher Daten zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn