Steps to get the solution: 1. We have to take exit condition considering that factorial of 0 or 1 is 1 2. In each recursive call we will return num*factorial(num-1) as factorial of number for e.g 3 is 3*2*1 3. In first pass 3*factorial(2) is returned 4. In next pass we will have 3*2*factorial(1) 5. As we know factorial of 1 is 1, so we will get 3*2*1 i.e 6 Code:

function factorial(num) {
  if(num ==0 || num==1) {
     return 1;
   }
   return num*factorial(num-1);
}

let result = factorial(3)
console.log(result) // output:  6