Quiz: 14 preguntas sobre JavaScript Date
¡Aprende a impresionar en fiestas con curiosidades de JS! ✨
¿Qué tan bien conoces la clase Date?
- ¡Demuestra tus habilidades en JavaScript! 🚀
- Sin registros ni inicios de sesión. ✨
- Opción múltiple. 🤖 … ¿Qué tan difícil puede ser?
Resumen
La clase Date en JavaScript tiene una API famosamente difícil. Fue heredada de Java y solo puedo asumir que se inspiró en métodos de cronometría neolíticos.
La lucha por dominar Date lleva a muchos desarrolladores a usar librerías de terceros sin cuestionarlo. Aunque suelen ser una opción segura y confiable, ¡estas librerías rara vez son necesarias para formatear fechas o localización!
Este cuestionario está diseñado para poner a prueba (y profundizar) tu conocimiento de la API nativa de Date. ¡Usa los botones verdes para obtener pistas y explicaciones! Con suerte, al final del desafío habrás consolidado tu comprensión de las fechas en JavaScript.
NOTA: Todos los ejemplos asumen la zona horaria local GMT-7.
👇 14 preguntas a continuación 👇
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d1 = new Date(2020, 1, 1)console.log(d1)El argumento del mes (Month) empieza en cero, con un rango de 0 a 11 (usando calendarios occidentales).
‘February’ tiene un valor de índice de uno. (Piénsalo como si fuera la búsqueda en un array).
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d2 = new Date(2020, 0, 1)console.log(d2)El argumento del mes (Month) empieza en cero. Tiene un rango de 0-11 (usando calendarios occidentales).
‘January’ tiene un valor de índice de cero. (Piénsalo como si fuera la búsqueda en un array).
¿Qué incluirá la salida?
const d3 = Date('Thu, 01 Jan 1970 00:00:00 GMT')console.log(d3)Date(...) se puede llamar sin new: ignora los argumentos y devuelve una cadena con la fecha y hora actuales en la zona horaria local. new Date(...) crea un objeto Date y sí interpreta los argumentos. La diferencia entre ambas llamadas es fácil de pasar por alto.
Supón que la zona horaria local tiene un desplazamiento GMT−07:00 en este instante. ¿Qué incluirá la salida?
const date = new Date(2020)console.log(date.getFullYear())Una instancia de Date creada con un único argumento entero se interpreta como un valor Unix Epoch. El Epoch es un conteo de milisegundos desde el 1 de enero de 1970.
Un valor de 2020 (milisegundos) se traduce a 2 segundos después del 1 de enero de 1970.
Dado que nuestra zona horaria local tiene un desplazamiento negativo de -7 horas, terminamos con Wed Dec 31 1969 17:00:02 GMT-0700 (Mountain Standard Time).
Puedes evitar el desplazamiento de la zona horaria local utilizando .getUTCFullYear().
¿Qué incluirá la salida?
var date = Date.UTC('2020-01-02T00:00')console.log(date.toUTCString())Date.UTC() espera componentes numéricos, no una cadena de fecha para analizar. En este caso devuelve NaN, que es un valor de tipo number. Los números no tienen el método toUTCString(), así que la siguiente llamada lanza un TypeError antes de que console.log imprima un valor.
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d = new Date(2020, 0, 1)d.setDate(1)console.log(d)El método .setDate() establece el día del mes, basándose en el mes actual de la instancia dada.
Si se proporciona un valor fuera del número de días disponibles, el valor del mes de la instancia de fecha se ajustará (por ejemplo, un setDate(32) en enero se calculará como el 1 de febrero).
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d = new Date(2020, 0, 1)d.setMonth(1)console.log(d)El método .setMonth() establece el mes para la instancia de fecha proporcionada.
El argumento del mes empieza en cero, con un rango de 0-11 (usando calendarios occidentales).
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d = new Date(2020, 0, 1)d.setMonth(12)console.log(d)El método .setMonth() establece el mes para la instancia de fecha proporcionada.
El argumento month se basa en cero, con 12 valores en el rango de 0-11 (usando calendarios occidentales).
Aquí vemos que el año se ajusta a 2021, porque setMonth(12) es 1 más que 11 (diciembre).
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d = new Date(2020, 0, 1)d.setMonth(13)console.log(d)El método .setMonth() establece el mes para la instancia de fecha proporcionada.
El argumento del mes se basa en cero, con un rango de 0-11 (usando calendarios occidentales).
Aquí vemos que el mes y el año se ajustan a febrero de 2021, porque setMonth(13) es 2 más que 11 (diciembre).
¿Qué fecha local representa el objeto Date? El formato de console.log depende del entorno; elige la fecha, no una representación literal de la consola.
const d = new Date(2020, 0, 1)d.setMonth(-1)console.log(d)El método .setMonth() establece el mes para la instancia de fecha dada.
El argumento del mes empieza en cero, con un rango de 0-11 (usando calendarios occidentales).
Aquí vemos que el mes y el año retroceden a diciembre de 2019, porque setMonth(-1) es menor que 0 (enero).
