</div><div>function factorial(n){</div><div> if(n ===1) {</div><div> return 1;</div><div> }</div><div> return n *factorial(n -1);</div><div>}</div><div>function tailFactorial(n, total) {</div><div> if(n ===1)</div><div> return total;</div><div> return tailFactorial(n -1, n * total);</div><div>}</div><div>function factorial2(n) {</div><div> return tailFactorial(n,1);</div><div>}</div><div>var N = 20;</div><div>console.time("normal recursive");</div><div>console.log(factorial(N));</div><div>console.timeEnd("normal recursive");</div><div>console.time("tail recursive");</div><div>console.log(factorial2(N));</div><div>console.timeEnd("tail recursive");</div><div>