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:
let 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.