Entschlüsselung des Date-Monats-Rätsels in JavaScript
In JavaScript weckt das Rätsel eines nicht übereinstimmenden Monats aus dem Date-Konstruktor die Neugier. Verblüffenderweise gibt ein Datum, das mit einem Monatswert von 9 erstellt wurde, Oktober anstelle des beabsichtigten Septembers zurück.
Wenn wir uns mit dem Innenleben von JavaScript befassen, stoßen wir auf die zugrunde liegende Logik hinter dieser Diskrepanz. Im Gegensatz zu gängigen Konventionen definiert das Date-Objekt von JavaScript Monate beginnend bei 0. Daher wird der bereitgestellte Wert 9 als zehnter Monat interpretiert, der dem Oktober entspricht.
Diese subtile Designentscheidung wird vom Mozilla Developer Network bestätigt ( MDN):
Monat
Ganzzahliger Wert, der den Monat darstellt, beginnend mit 0 für Januar bis 11 für Dezember.
Eine weitere Bestätigung ergibt sich aus der Sprachspezifikation selbst:
- Sei mn ?(ℝ(m) modulo 12).
Diese mathematische Formel effektiv wickelt den Monatswert um einen Modul von 12 und stellt so sicher, dass er immer im Bereich von 0 bis 11 liegt.
Somit wird der im Code bereitgestellte Monatswert basierend auf der Monatsdefinition von JavaScript korrekt in den entsprechenden Oktober konvertiert .
Das obige ist der detaillierte Inhalt vonWarum gibt „new Date(2023, 9)' in JavaScript den Oktober zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!