JavaScript de Cero a Experto / Manejo de errores y debugging
console más allá del .log: la caja del detective
Llevas 14 módulos usando console.log para todo. Es tu linterna, y está
bien —pero el objeto console tiene una caja de herramientas entera que casi
nadie usa: tablas, grupos, cronómetros, contadores, alertas con color. Hoy
la abres y tu depuración cambia de nivel.
No todo se mira igual
Niveles: log, info, warn, error
No todos los mensajes son iguales, y la consola los distingue con color e icono. Además, las DevTools te dejan FILTRAR por nivel —ver solo errores en un mar de logs:
La diferencia no es estética: console.error y console.warn incluyen un
stack trace y, en el navegador real, se pueden filtrar aparte. Regla
práctica: warn para "esto funciona pero deberías arreglarlo" (una API que
va a desaparecer), error para "esto se rompió". Reservar los niveles hace
que tu consola cuente una historia legible en vez de un muro plano.
console.table: datos con estructura
Cuando tienes un array de objetos —gastos, usuarios, filas—, console.table
los dibuja como una hoja de cálculo. Es la diferencia entre leer un párrafo
y leer una tabla:
group: pasos con jerarquía
console.group / console.groupEnd indentan y agrupan mensajes
relacionados —ideal para seguir un proceso con sub-pasos sin perderte:
En las DevTools cada grupo es plegable: colapsas lo que no te interesa y te
concentras. Es el mismo instinto de organizar un <Diagrama> en cajas: la
estructura visual acelera la comprensión.
Medir y contar: time, count, assert
Tres joyas para preguntas concretas. console.time/timeEnd cronometra (ya
lo usaste en el módulo 7); console.count cuenta cuántas veces se pasa por
un punto (perfecto para cazar renders o llamadas de más); console.assert
solo grita si una condición es FALSA —un mini-test en línea:
console.count es un cazador de bugs de rendimiento silenciosos: si "render
de header" aparece 40 veces, tienes un problema que ningún log te habría
gritado. Y console.assert es la semilla de la próxima idea grande del
curso: verificar automáticamente que algo cumple lo esperado —bienvenido, en
miniatura, al testing (módulo 16).
Sospechas que una función se ejecuta muchas más veces de las que debería. ¿Cuál herramienta lo revela con menos esfuerzo?
Mini-reto
Abre la caja: 1) toma tu array de gastos y muéstralo con console.table;
2) envuelve un cálculo de totales en console.group("cálculo") /
groupEnd, con sub-logs por categoría; 3) agrega un console.assert que
verifique que el total es el esperado, y rómpelo a propósito para ver el
grito. Bonus: corre todo esto en las DevTools reales de tu navegador (F12)
para ver la tabla y los grupos dibujados de verdad.
Qué sigue
Los console.* te dejan ESPIAR desde afuera. La próxima lección te mete
DENTRO del programa en marcha: breakpoints, ejecución paso a paso, inspección
de variables congeladas en el tiempo. El debugger de DevTools —y el método
para no volver a depurar a ciegas.