Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cơ chế hoạt động của hàm đệ quy (recursion) trong JavaScript

Khi một hàm tự gọi chính nó, đó gọi là đệ quy (recursion), JavaScript cũng hoạt động tương tự. Xem ví dụ hàm tự gọi để tính giai thừa:

Ví dụ

<html>
  <body>
    <script>
      function displayFact(value) {
        if (value < 0) return -1;
        else if (value == 0) return 1; // 0! = 1
        else return value * displayFact(value - 1);
      }
      var res = displayFact(5);
      document.write("5 factorial = " + res); // 120
    </script>
  </body>
</html>

Lưu ý: Luôn cần điều kiện dừng (base case) để tránh stack overflow. JS không tối ưu tail-call (trừ strict mode một số engine), nên đệ quy sâu có thể tràn stack.