No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Debugging

12/13
Recursos

Debugging es el término para solucionar bugs. Los bugs (“bichos” en inglés) son errores en la aplicación, saber cómo solucionarlos de manera eficiente es clave para tu desarrollo como profesional.

Todo navegador dispone de Dev tools o herramientas de desarrollador, que es un conjunto de características del código de la página web, una de estas es el debugging.

La consola del navegador es importante para ver qué está pasando con el código generado. La consola se muestra con la combinación de teclas F12 / Ctrl + Shift + I / Cmd+Opt+I o clic derecho e “Inspeccionar” en tu navegador preferido (de preferencia Google Chrome).

Código de ejemplo

El código de ejemplo que se usará en las Dev Tools será el siguiente:

var a = "Hello global"

function hello() {
  let b = "Hello function"

  if(true) {
    let c = "Hello block"
  }
}

hello()

Palabra reservada debugger

La palabra reservada debugger sirve para detener la ejecución del programa, pero solo funciona si el panel de las herramientas de desarrollo está abierto. Este panel te mostrará información sobre el código hasta la línea del debugger.

Ejecuta el código de prueba que contenga la palabra reservada debugger en la consola de tu navegador, puedes hacerlo en una página en blanco tan solo poniendo about:blank como una URL.

var a = "Hello global"

function hello() {
  let b = "Hello function"

  if(true) {
    let c = "Hello block"
    debugger // <---- Palabra reservada para debbuging
  }
}

hello()

Al momento de ejecutar el código te aparecerá el panel de debugging.

Herramientas de desarrollador de Chrome

En el panel de información, existe un apartado “Scope” que muestra el *scope/ de cada variable correspondiente al punto donde la ejecución se detuvo.

Sección de Scope de las DevTools de Chrome

Breakpoints

Los breakpoints son puntos donde la ejecución del programa se parará. Para activarlos se debe dar clic en la línea de código que se desea parar.

Breakpoints en un código JavaScript

Closures en debugging

Si el código tiene closures, aparecerán en el panel “Scope”.
scope_closure05.PNG

Para concluir, deberías aprender a utilizar las herramientas de desarrollo web para ser más eficiente, y de esta forma encontrar de manera eficiente la causa de un error o un comportamiento no deseado que provocaría un bug.

Contribución creada por Andrés Guano.

Aportes 17

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

“-utilizas para todo console log?”

yo: jaja si soy

Curso de Debugging con Chrome DevTools de Platzi: https://platzi.com/cursos/devtools/

una extensión de VSCode muy conocida, pero a alguien le puede servir: Error Lens.

Existe un curso de debug que da el profe degranda ❤️

De (depurar) bug (error) ing (ando)

Por si ocupan hice un micro-post acerca de este tema: https://dev.to/ulisesserranop/debugger-vs-consolelog-1jme

Yo en las preguntas del inicio:
‘Si señoor, si señor!’ 😦
jajaja

Estaria brutal que trajeran un curso de debuggear pero con las herramientas que nos brinda VsCode,.

debugger

The debugger statement invokes any available debugging functionality, such as setting a breakpoint. If no debugging functionality is available, this statement has no effect.

Examples

Using the debugger statement

The following example shows code where a debugger statement has been inserted, to invoke a debugger (if one exists) when the function is called.

function potentiallyBuggyCode() {
  debugger;
  // do potentially buggy stuff to examine, step through, etc.
}

When the debugger is invoked, execution is paused at the debugger statement. It is like a breakpoint in the script source.

Dev Tools

para mi ha sido suficiente por ahora con debugger;

### Buenas prácticas: 1. Declara siempre tus variables y funciones **antes de usarlas** para evitar confusiones. 2. Usa `let` y `const` en lugar de `var` para minimizar problemas con el hoisting y el alcance.

:000000

Yo nunca me equivoco 🗿
okno xd

Esto me ahorrara muchos console.log(“pass”)

Código de la clase:

var  a  =  'Hello';

function hello(){
    let b =  'Hello World';
    const c =  'Hello World!';
    debugger;
}

hello();