I'm learning to work with recursion and so far it went well with basic examples. However I want to calculate the factorial, but I don't understand what happened step-by-step. If I do it imperatively I understand it but I fail on this example:

`return x * fac(x-1);`  gives me back 5 \* 4, so far soo good, but what happens now? Does it mean it become 20 now? So my next iteration would be then 20 \* 19?

```
      const fac = (x) => {
        if(x <= 1) {
          return x;
        }
        return x * fac(x-1);
      };
      console.log(fac(5)); // 120

```