JavaScript de Cero a Experto / Strings, números y fechas
Reto: el recibo perfecto
El módulo completo en una sola pieza: vas a generar el recibo mensual de "Mi Bolsillo" con columnas alineadas, plata en formato colombiano, la fecha en español y una validación con regex. Es exactamente el tipo de salida que producen las apps de verdad — y la produce TU código.
Reto
El recibo perfecto
Qué debes construir
Con estos datos de partida:
const gastos = [
{ nombre: "Almuerzo", valor: 18000 },
{ nombre: "Bus", valor: 5800 },
{ nombre: "Café", valor: 4500 },
];
const titular = { nombre: "Sara", celular: "3001234567" };Genera exactamente este recibo en la consola:
====== MI BOLSILLO ======
Fecha: miércoles, 15 de julio de 2026
-------------------------
Almuerzo....... $ 18.000
Bus............ $ 5.800
Café........... $ 4.500
-------------------------
TOTAL.......... $ 28.300
Celular válido: true
Requisitos:
- Formato COP con
Intl.NumberFormat(es-CO, monedaCOP, sin decimales) — el formateador se crea UNA vez y se reutiliza. - La fecha (
new Date(2026, 6, 15)para que la salida sea reproducible) mostrada conIntl.DateTimeFormatydateStyle: "full". - Columnas alineadas: el nombre con
padEnd(15, ".")y el valor ya formateado conpadStart(10, " "). - Una función
lineaque reciba un gasto (con destructuring) y devuelva su renglón — las líneas del recibo salen demap+ esa función, no copiadas a mano. - El TOTAL con
reduce, mostrado con la MISMA funciónlinea. - Todo el recibo es UN template literal multilínea (los renglones de
gastos se unen con
join). - Validación regex: el celular del titular contra
/^3\d{9}$/, imprimiendoCelular válido: true.
Reglas
- Cero concatenación con
+para armar el recibo: template literals. - La plata NUNCA se formatea a mano: solo
Intl. - La función
linease usa para gastos Y para el total (misma alineación garantizada).
25:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 6 cerrado — y con él, un hito: ya dominas el LENGUAJE. Variables, control, funciones, arrays, objetos, strings, números, fechas y regex: todo lo que JavaScript es en sí mismo. Lo que viene es donde el lenguaje toca la página: el módulo 7 abre el DOM — leer y modificar el HTML desde JavaScript, el poder que convierte documentos en aplicaciones.