Вы попали на английскую версию сайта. Большая часть курсов доступна на русском языке
All Posts | Development

# The Simplest Debugging Technique in JavaScript

It is very easy to make mistakes when you have to handle variables, change them, keep track, etc. Especially in a loop. A great way to understand what's going on is to use the simplest debugging technique — `console.log`. This function prints onto the screen whatever you pass to it.

I have a function that iteratively calculates the factorial. The idea is simple: multiply numbers from 1 up to n. I wrote the code, but it gives me the incorrect result. I'm trying to understand what's happening inside the main while loop:

``````while (counter <= n) {
result = result * result;
counter = counter + 1;
}
``````

I'm going to add `console.log` here to see how `result` is being changed over time:

``````while (counter <= n) {
result = result * result;
counter = counter + 1;
console.log(result)
}
``````

Now, each time this block of code repeats, the `result` variable will be printed. Let's see:

``````1
1
1
``````

(I'm running the function with `n` equals 3)

The `result` in each step is 1. This is not right, the `result` should increase each step... Okay, so, the problem is probably in the line where `result` is changing. Right! I have `result = result * result`, but I need to multiply `result` by `counter`, not by `result`.

Let's fix it:

``````while (counter <= n) {
result = result * counter;
counter = counter + 1;
console.log(result)
}

1
2
6
``````

Now it works! I see the steps now, and the last step produces the correct answer: 3! is 6.

Don't hesitate to put `console.log` wherever. It's your best friend :-)