Depuracion
Console, breakpoints, devtools
Depuracion en JavaScript
Saber depurar es una habilidad esencial. JavaScript proporciona varias herramientas para encontrar y corregir errores.
Metodos de Console
// Basicos
console.log("Mensaje normal");
console.info("Informacion");
console.warn("Advertencia"); // Amarillo
console.error("Error"); // Rojo
// Con formato
console.log("Usuario: %s, Edad: %d", "Ana", 25);
console.log("Objeto: %o", { nombre: "Ana" });
// Agrupando
console.group("Grupo de logs");
console.log("Log 1");
console.log("Log 2");
console.groupEnd();
// Tabla (excelente para arrays/objetos)
const usuarios = [
{ nombre: "Ana", edad: 25 },
{ nombre: "Juan", edad: 30 }
];
console.table(usuarios);
// Tiempo de ejecucion
console.time("mi-operacion");
// ... codigo a medir
console.timeEnd("mi-operacion"); // mi-operacion: 123ms
// Conteo
for (let i = 0; i < 5; i++) {
console.count("iteracion"); // iteracion: 1, 2, 3, 4, 5
}
// Limpiar consola
console.clear();
Debugger y Breakpoints
function calcular(a, b) {
debugger; // Pausa la ejecucion aqui
const resultado = a + b;
return resultado;
}
// Cuando debugger se encuentra:
// 1. El navegador pausa la ejecucion
// 2. Puedes inspeccionar variables
// 3. Puedes avanzar paso a paso
// Tambien puedes poner breakpoints directamente en DevTools:
// - Click en el numero de linea en Sources
// - Breakpoints condicionales: click derecho > "Add conditional breakpoint"
Manejo de Errores
// try...catch...finally
try {
const datos = JSON.parse(jsonInvalido);
} catch (error) {
console.error("Error al parsear:", error.message);
// error.name - tipo de error
// error.message - descripcion
// error.stack - stack trace
} finally {
console.log("Siempre se ejecuta");
}
// Lanzar errores personalizados
function dividir(a, b) {
if (b === 0) {
throw new Error("No se puede dividir por cero");
}
return a / b;
}
// Tipos de error integrados
throw new TypeError("Se esperaba un string");
throw new RangeError("Valor fuera de rango");
throw new ReferenceError("Variable no definida");
DevTools del Navegador
Console
Ver logs, errores, ejecutar codigo en vivo
Sources
Ver codigo fuente, poner breakpoints, depurar paso a paso
Network
Ver peticiones de red, tiempos, respuestas
Elements
Inspeccionar y modificar HTML/CSS en vivo
Application
Ver localStorage, sessionStorage, cookies
Consejos de Depuracion
- Reproduce el error consistentemente primero
- Usa console.log estrategicamente para rastrear el flujo
- Revisa el stack trace para encontrar el origen
- Usa breakpoints para examinar el estado en un punto especifico
- Simplifica: aisla el problema en el menor codigo posible