Funkcje rekurencyjne to funkcje, które wywołują metodę w innej metodzie. Jednak nieskończona rekursja powoduje błąd rozmiaru stosu. Błąd rozmiaru stosu występuje z powodu oczekujących wielu żądań. Ten problem pojawia się podczas wywoływania samej funkcji. Biorąc to pod uwagę, ten artykuł wyjaśnia, że maksymalny rozmiar stosu wywołań przekracza błąd w JavaScript. Ponadto zapewniono również rozwiązanie w celu rozwiązania błędu.
Artykuł służy nam w następujący sposób:
- Błąd przekroczenia maksymalnego rozmiaru stosu wywołań w JavaScript
- Używanie if Condition do rozwiązania błędu przekroczenia maksymalnego rozmiaru stosu wywołań
- Użycie pętli for do rozwiązania błędu przekroczenia maksymalnego rozmiaru stosu wywołań.
Błąd przekroczenia maksymalnego rozmiaru stosu wywołań w JavaScript
Błąd przekroczenia rozmiaru stosu występuje, gdy użytkownik wywołuje funkcję rekurencyjną. Ten rodzaj błędu występuje z powodu wielokrotnego wywoływania metody. The użytkownik_zabawy() jest używany jako wywołanie rekurencyjne wewnątrz funkcji użytkownik_zabawy() w JavaScript, aby wygenerować błąd w oknie konsoli.
Kod
konsola.log ( „Przekroczono maksymalny rozmiar stosu wywołań” ) ;
fajny_użytkownik ( ) ;
funkcjonować fajny_użytkownik ( )
{
fajny_użytkownik ( ) ;
}
W tym kodzie błąd „przekroczono maksymalny rozmiar stosu wywołań” jest generowany przez wywołanie metody „zabawny_użytkownik()” wewnątrz funkcji.
Kod wyświetla błąd jako „RangeError: przekroczono maksymalny rozmiar stosu wywołań”.
Istnieje wiele sposobów rozwiązania tego błędu, na przykład dla pętli oraz Instrukcje warunkowe , którego można użyć do ograniczenia wywołania funkcji.
Rozwiązanie 1: Używanie if Condition do rozwiązania błędu przekroczenia maksymalnego rozmiaru stosu wywołań
Aby rozwiązać ten błąd, stosowany jest warunek if w celu ograniczenia rozmiaru stosu w JavaScript. Na przykład kod znajduje się poniżej.
Kod
był i = 1 ;fajny_użytkownik ( i ) ;
funkcjonować fajny_użytkownik ( i ) {
jeśli ( i < = 10 )
{
konsola.log ( „Witamy w JavaScript” ) ;
i =i+ 1 ;
fajny_użytkownik ( i ) ;
} }
Opis kodu jest następujący:
- Po pierwsze, zmienna 'i' jest inicjowany wartością 1.
- Po tym, użytkownik_zabawy() metoda jest stosowana poprzez przekazanie zmiennej 'i'.
- W tej funkcji, jeśli zostanie zastosowany warunek, który ogranicza iterację do 10 .
- Wreszcie wiadomość „Witamy w JavaScript” jest wyświetlany za pomocą „konsola.log()” metoda.
Wyjście
Rozwiązanie 2: Używanie for Loop do rozwiązania błędu przekroczenia maksymalnego rozmiaru stosu wywołań
Aby rozwiązać ten błąd, wykorzystywana jest pętla for ograniczająca iteracje w JavaScript. Na przykład kod znajduje się poniżej.
Kod
wynajmować wyjście = 0 ;dla ( wynajmować ja = 5 ; i > 0 ; i-- )
{
wyjście += dodaj ( 1 , 1 ) ;
}
funkcjonować Dodaj ( a, b ) {
zwrócić a + b;
}
konsola.log ( wyjście ) ;
W tym kodzie:
- Zmienna 'wyjście' jest inicjowany wartością 0.
- Następnie pętla for jest wykorzystywana do wykonania pięciu iteracji. W tej pętli Dodaj() metoda jest wywoływana przez przekazanie wartości 1.
- Metoda Dodaj() zwraca dodanie dwóch zmiennych a oraz b .
- W końcu dziennik() Metoda służy do wyświetlania danych wyjściowych w oknie konsoli.
Wyjście
Wyjście powraca „10” rozwiązując błąd maksymalnego rozmiaru stosu wywołań w JavaScript.
Wniosek
Nieskończone wywoływanie funkcji rekurencyjnych występuje jako błąd „przekroczono maksymalny rozmiar stosu wywołań” w JavaScript. W tym artykule wyjaśniono przyczyny powodowania tego typu błędu. Następnie dwa rozwiązania, w tym 'dla pętli' oraz 'Instrukcje warunkowe' są wykorzystywane do rozwiązania błędu. W związku z tym funkcje wywołujące są ograniczone przez zastosowanie tych rozwiązań.