L'anomalie historique des mois indexés zéro de JavaScript
Lors de la construction d'un nouvel objet Date en JavaScript à l'aide du constructeur, une observation particulière se pose : l'argument du mois commence à 0. Cet écart par rapport à la numérotation intuitive laisse les développeurs perplexes depuis un certain temps.
Malgré l'argument du mois étant indexé à zéro, l'argument du jour du mois commence à 1. Cette incohérence a encore alimenté la curiosité quant à la justification d'un tel choix de conception.
Pour démystifier cette anomalie historique, nous nous aventurons dans le annales de l'histoire de la programmation :
Lignée de l'API Date de Java
Brendan Eich, le créateur de JavaScript, a révélé sur Twitter qu'il avait adopté l'API Date du JDK1.0 de Java (1995). Ken Smith de Netscape a porté la classe java.util.Date vers JavaScript, ce qui a entraîné l'héritage de ce schéma d'indexation mensuel particulier.
Dépréciation en Java mais persistance en JavaScript
Java a finalement déprécié ce comportement anormal dans JDK 1.1, favorisant l'indexation de base zéro. Cependant, JavaScript est resté inchangé.
Solutions modernes et perspectives d'avenir
Bien que JavaScript ne dispose pas d'une API date/heure intégrée avec indexation mensuelle corrigée, de nombreux tiers des bibliothèques telles que Luxon Moment.js, date-fns et js-joda sont apparues comme des alternatives viables.
À l'horizon se trouve le Proposition temporelle TC39, qui vise à introduire un système date/heure complet et moderne dans le langage. S’il est adopté, JavaScript échappera enfin aux chaînes de sa bizarrerie historique et adoptera une numérotation des mois conviviale et intuitive.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!