¿por qué el índice de mes de javascript está basado en 0

He leído numerosos bashs de explicación por qué esto se creó así en el pasado (con el índice de año y día no se basan en 0). Ninguna de estas explicaciones realmente tenía sentido.

Lo que es aún más sorprendente para mí: incluso en el último borrador de ECMAScript 2018, este problema sigue existiendo. Ver fechas en ECMAScript 2018.

Javascript podría haber tomado esto de Java hace mucho tiempo, pero no veo por qué no se está cambiando a menos que realmente haya una razón adecuada para ello.

Gracias y saludos, Marcel

¿Por qué el índice de mes de javascript está basado en 0?

No es sorprendente. El día de la semana también está basado en 0. En ambos casos, es común querer buscar versiones simbólicas de ellos en arreglos (por ejemplo, ["January", "February", ...] , ["Sunday", "Monday", ...] ). Las matrices están basadas en 0. JavaScript no es el único idioma / tiempo de ejecución que usa valores basados ​​en 0 para esto.

Lo que es aún más sorprendente para mí: incluso en el último borrador de ECMAScript 2018, este problema sigue existiendo.

Sería mucho más sorprendente si cambiaran 22 años después del hecho, explotando millones de scripts, especialmente. Como es perfectamente racional tal como es. Podrían agregar un nuevo acceso que haga el +1 por ti, pero … sí, no contendría la respiración. 🙂

La única razón para las versiones basadas en 1 de estas es el formato. El formato no es manejado por JavaScript en absoluto. Hay algún formato en ECMA-402: Especificación de la API de internacionalización de ECMAScript® 2016 , en la forma de DateTimeFormat .