Die historische Anomalie der nullindizierten Monate in JavaScript
Beim Erstellen eines neuen Date-Objekts in JavaScript mit dem Konstruktor ergibt sich eine eigenartige Beobachtung: Das Monatsargument beginnt bei 0. Diese Abweichung von der intuitiven Nummerierung hat Entwickler seit geraumer Zeit verwirrt.
Trotz des Monats Da das Argument nullindiziert ist, beginnt das Argument „Tag des Monats“ bei 1. Diese Inkonsistenz hat die Neugier auf die Gründe für eine solche Designwahl weiter geweckt.
Um diese historische Anomalie zu entmystifizieren, wagen wir uns in die Annalen von Programmiergeschichte:
Abstammung von Javas Date API
Brendan Eich, der Erfinder von JavaScript, gab auf Twitter bekannt, dass er die Date-API von Javas JDK1.0 (1995) übernommen hat. Ken Smith von Netscape portierte die Klasse java.util.Date nach JavaScript, was zur Vererbung dieses besonderen Monatsindizierungsschemas führte.
Veraltet in Java, aber Persistenz in JavaScript
Java hat dieses anomale Verhalten schließlich in JDK 1.1 abgelehnt und eine nullbasierte Indizierung bevorzugt. JavaScript ist jedoch unverändert geblieben.
Moderne Lösungen und Zukunftsaussichten
Während JavaScript eine integrierte Datums-/Uhrzeit-API mit korrigierter Monatsindizierung fehlt, gibt es zahlreiche Drittanbieter Bibliotheken wie Luxon Moment.js, date-fns und js-joda haben sich als praktikable Alternativen herausgestellt.
Am Horizont ist die TC39 Zeitlicher Vorschlag, der darauf abzielt, ein umfassendes und modernes Datums-/Uhrzeitsystem in die Sprache einzuführen. Wenn JavaScript übernommen wird, wird es endlich den Fesseln seiner historischen Eigenart entkommen und eine benutzerfreundliche und intuitive Monatsnummerierung einführen.
Das obige ist der detaillierte Inhalt vonWarum verwendet das „Date'-Objekt von JavaScript eine nullbasierte Monatsindizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!