CodeForge

JavaScript de Cero a Experto / Manejo de errores y debugging

console más allá del .log: la caja del detective

Teoría20 min20 XP

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.