Làm việc với đệ quy trong JavaScript

Trong lập trình có một khái niệm gọi là đệ quy - đó là khi một hàm gọi chính nó. Hãy xem xét một ví dụ. Hãy in các số từ 1 đến 10 bằng đệ quy:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // ở đây hàm gọi chính nó
  }
}
func();

Hãy thảo luận về cách đoạn mã này hoạt động.

Chúng ta có biến toàn cục i và hàm func, bên trong hàm này, nội dung của biến i được in ra console, và sau đó thực hiện ++.

Nếu biến i của chúng ta nhỏ hơn hoặc bằng 10, thì hàm được gọi lại. Vì biến i là toàn cục, nên với mỗi lần gọi hàm mới, trong nó sẽ là giá trị của biến i đã được đặt ở lần gọi trước.

Kết quả là hàm sẽ gọi chính nó cho đến khi i trở nên lớn hơn 10.

Lưu ý rằng trong trường hợp của chúng ta, không thể chạy hàm mà không có if - nếu làm điều này, sẽ dẫn đến việc gọi hàm vô hạn.