Dimensione massima dello stack di chiamata superata l'errore in JavaScript | Spiegato

Dimensione massima dello stack di chiamata superata l'errore in JavaScript | Spiegato

Le funzioni ricorsive sono funzioni che chiamano un metodo all'interno di un altro metodo. Tuttavia, la ricorsione infinita provoca un errore di dimensioni dello stack. L'errore di dimensioni dello stack si verifica a causa del pendente di molte richieste. Questo problema sorge quando si chiama la funzione stessa. Considerandolo, questo articolo spiega che la dimensione massima dello stack di chiamata supera l'errore in JavaScript. Inoltre, viene fornita anche la soluzione per risolvere l'errore.

L'articolo ci serve come segue:

  • Dimensione massima dello stack di chiamata Supera l'errore in JavaScript
  • Utilizzando se la condizione per risolvere la dimensione massima dello stack di chiamata ha superato l'errore
  • Utilizzando per loop per risolvere la dimensione massima dello stack di chiamata superata l'errore.

Dimensione massima dello stack di chiamata Supera l'errore in JavaScript

La dimensione dello stack superata si verifica quando l'utente chiama la funzione ricorsiva. Questo tipo di errore si verifica a causa dell'invocazione ripetuta di un metodo. IL fun_user () viene utilizzato come chiamata ricorsiva all'interno della funzione fun_user () In JavaScript per generare un errore nella finestra della console.

Codice

console.registro ("dimensione massima dello stack di chiamata superata");
fun_user ();
funzione fun_user ()

fun_user ();

In questo codice, il "La dimensione massima dello stack di chiamata ha superato l'errore" viene generato chiamando un metodo "Fun_user ()" All'interno della funzione.

Il codice visualizza l'errore come “RangeError: la dimensione massima dello stack di chiamata superata."

Esistono molti modi per risolvere questo errore, come per loop E dichiarazioni condizionali, che può essere utilizzato per limitare la chiamata di funzione.

Soluzione 1: utilizzando se la condizione per risolvere la dimensione massima dello stack di chiamata ha superato l'errore

Per risolvere l'errore, viene applicata la condizione IF per limitare la dimensione dello stack in JavaScript. Ad esempio, il codice è riportato di seguito.

Codice

var i = 1;
fun_user (i);
funzione fun_user (i)
se io <= 10)

console.log ('Welcome to JavaScript');
i = i+1;
fun_user (i);

La descrizione del codice è la seguente:

  • In primo luogo, una variabile "io" viene inizializzato con il valore 1.
  • Dopo di che, fun_user () Il metodo viene impiegato passando la variabile "io".
  • In questa funzione, se viene applicata una condizione che limita l'iterazione a 10.
  • Infine, il messaggio "Benvenuti in JavaScript" viene visualizzato usando il file “Console.tronco d'albero()" metodo.

Produzione

Soluzione 2: utilizzando per loop per risolvere la dimensione massima dello stack di chiamata superata

Per risolvere l'errore, viene utilizzato un ciclo per limitare le iterazioni in JavaScript. Ad esempio, il codice è riportato di seguito.

Codice

output Let = 0;
per (let i = 5; i> 0; i--)

output += add (1, 1);

funzione add (a, b)
restituire a + b;

console.registro (output);

In questo codice:

  • La variabile "produzione" è inizializzato con un valore di 0.
  • Successivamente, viene utilizzato un ciclo per eseguire cinque iterazioni. In questo ciclo, il aggiungere() Il metodo viene chiamato passando il valore 1.
  • Il metodo aggiungere() Restituisce l'aggiunta di due variabili UN E B.
  • Alla fine, iltronco d'albero() Il metodo viene utilizzato per visualizzare l'output nella finestra della console.

Produzione

L'output restituisce "10" Risolvendo l'errore della dimensione massima dello stack di chiamata in JavaScript.

Conclusione

L'infinita chiamata di funzioni ricorsive si verifica come "La dimensione massima dello stack di chiamata ha superato l'errore" In JavaScript. Questo articolo spiega i motivi per causare questo tipo di errore. Successivamente, due soluzioni, tra cui "Per loop" E "Dichiarazioni condizionali" vengono utilizzati per risolvere l'errore. Quindi, le funzioni di chiamata sono limitate impiegando queste soluzioni.