Debug en JavaScript: encuentra el bug exacto antes de tocar código
Aprende depuración profesional con breakpoints, trazas de consola y lectura de stack trace para corregir errores con método en lugar de adivinar.
Depurar no es "probar cosas al azar": es seguir evidencia hasta encontrar la línea exacta donde la realidad se separa de lo esperado.
En esta lección vas a entrenar un método: reproducir, aislar, observar estado, confirmar hipótesis y aplicar corrección mínima.
Si aprendes este flujo ahora, avanzarás mucho más rápido en módulos complejos como fetch, formularios y Node.
Objetivo práctico: dejar de decir "no sé por qué falla" y empezar a decir "falla aquí, por este valor, en este paso".
- Corregir sin diagnóstico es crear bugs nuevos.
- Un bug casi siempre tiene patrón: datos inesperados, orden incorrecto o supuestos no válidos. Antes de editar código, hay que observar qué valores reales circulan.
- Una estrategia efectiva es: reproducir error, capturar evidencia (logs/stack), acotar zona, arreglar y verificar regresión.
- Un buen log responde una pregunta concreta.
- No llenes la consola de ruido. Cada traza debería ayudarte a validar una hipótesis: valor esperado, tipo esperado o rama ejecutada.
Mentalidad de depuración: primero entender, luego corregir
Corregir sin diagnóstico es crear bugs nuevos.
Un bug casi siempre tiene patrón: datos inesperados, orden incorrecto o supuestos no válidos. Antes de editar código, hay que observar qué valores reales circulan.
Una estrategia efectiva es: reproducir error, capturar evidencia (logs/stack), acotar zona, arreglar y verificar regresión.
Consola inteligente: logs que realmente ayudan
Un buen log responde una pregunta concreta.
No llenes la consola de ruido. Cada traza debería ayudarte a validar una hipótesis: valor esperado, tipo esperado o rama ejecutada.
Patrón recomendado: etiqueta + datos clave + contexto de fase. Así cuando leas 50 líneas, entiendes cronología enseguida.
Breakpoints y debugger: inspección en tiempo real
Cuando un log no basta, para la ejecución y mira dentro.
Un breakpoint te permite congelar la ejecución justo antes del error para inspeccionar variables, pila de llamadas y flujo paso a paso.
`debugger` en código provoca ese mismo punto de pausa si DevTools está abierto, útil para casos puntuales en desarrollo.
- Step over: avanza línea sin entrar en función.
- Step into: entra dentro de la función llamada.
- Step out: termina función actual y vuelve al llamador.
Leer stack trace sin miedo
La traza de error te dice el camino que siguió el bug.
El stack trace lista funciones desde donde se lanzó el error hasta su origen. No empieces por la última línea: busca la primera referencia a tu código de negocio.
Cuando un error nace en datos inválidos, el stack te ayuda a localizar qué función asumió algo incorrecto.
Antipatrones de depuración que debes evitar
No tapes errores: entiéndelos.
Antipatrón 1: comentar líneas al azar hasta que "funcione". Antipatrón 2: meter try/catch vacío solo para ocultar errores. Antipatrón 3: corregir síntoma sin testear casos borde.
Regla práctica: cada fix debe responder a una causa comprobada. Si no puedes explicar la causa, aún no has terminado de depurar.