JavaScript de Cero a Experto / Strings, números y fechas
Intl: plata y números en perfecto colombiano
1234567 debería mostrarse $ 1.234.567 en Colombia... y $1,234,567.00
en Estados Unidos. Puntos, comas, símbolos y posiciones cambian por país, y
formatearlo a mano es firmar un contrato de bugs. JavaScript trae un
diplomático que conoce las costumbres de cada región: Intl. Desde hoy,
"Mi Bolsillo" muestra la plata como se muestra en Colombia.
El diplomático de los formatos
Moneda colombiana
Dos piezas en el nombre: el LOCALE ("es-CO": español de Colombia) decide
puntuación y posición del símbolo; la CURRENCY ("COP") decide qué moneda
es. Son independientes — podrías mostrar dólares con puntuación colombiana.
Y fíjate en el patrón: el formateador se crea UNA vez y se llama muchas —
crearlo es lo costoso, formatear es gratis.
Miles y porcentajes
Ojo con el estilo percent: espera la fracción (0.19) y él pone el × 100
y el símbolo. Pasarle 19 te mostraría 1.900 % — un susto común la
primera vez.
Tiempos relativos
Las apps modernas no dicen "2026-07-14": dicen "ayer". Ese lenguaje también
lo habla Intl:
Nota honesta: Intl también formatea fechas completas
(Intl.DateTimeFormat: "miércoles, 15 de julio de 2026") — pero para
dárselas necesitas objetos Date, el tema de la próxima lección. Allá
cerraremos el círculo.
Muestras precios así: '$' + precio, y un usuario ve $1234567. Tu jefe pide que se vea $ 1.234.567 como en toda tienda colombiana. ¿La solución correcta?
Mini-reto
En "Mi Bolsillo": crea el formateador cop de la lección y reescribe la
salida del reto del módulo 5 — total del mes, total de comida y el gasto más
caro — mostrando cada cifra con cop.format(...). Agrega el porcentaje que
representa la comida sobre el total con el formateador percent. Tu
informe pasa de "números de programador" a "app colombiana de verdad".
Qué sigue
Cada gasto real ocurre en una FECHA — y las fechas son de los datos más
traicioneros de la programación (meses que empiezan en 0, zonas horarias,
años bisiestos). La próxima lección doma al objeto Date: crear fechas,
leer sus partes, calcular diferencias y mostrarlas en español con
Intl.DateTimeFormat.