Error de tamaño máximo de pila de llamadas excedido en JavaScript | Explicado

Error De Tamano Maximo De Pila De Llamadas Excedido En Javascript Explicado



Las funciones recursivas son funciones que llaman a un método dentro de otro método. Sin embargo, la recursividad infinita provoca un error de tamaño de pila. El error de tamaño de pila se produce debido a que hay muchas solicitudes pendientes. Este problema surge al llamar a la función en sí. Al considerarlo, este artículo explica que el tamaño máximo de la pila de llamadas supera el error en JavaScript. Además, también se proporciona la solución para resolver el error.

El artículo nos sirve de la siguiente manera:







  • Error de tamaño máximo de pila de llamadas excedido en JavaScript
  • Uso de la condición if para resolver el error de tamaño máximo de pila de llamadas excedido
  • Usar for loop para resolver el error de tamaño máximo de pila de llamadas excedido.

Error de tamaño máximo de pila de llamadas excedido en JavaScript

El error de tamaño de pila excedido ocurre cuando el usuario llama a la función recursiva. Este tipo de error ocurre debido a la invocación repetida de un método. los divertido_usuario() se utiliza como una llamada recursiva dentro de la función divertido_usuario() en JavaScript para generar un error en la ventana de la consola.



Código



consola.log ( 'Se excedió el número máximo de llamadas a la pila' ) ;
divertido_usuario ( ) ;
función divertido_usuario ( )
{
divertido_usuario ( ) ;
}

 





En este código, el 'Error de tamaño máximo de pila de llamadas superado' se genera llamando a un método “usuario_divertido()” dentro de la función.



El código muestra el error como 'RangeError: se excedió el tamaño máximo de la pila de llamadas'.

Hay muchas maneras de resolver este error, como en bucle y declaraciones condicionales , que se puede utilizar para limitar la llamada a la función.

Solución 1: usar la condición if para resolver el error de tamaño máximo de pila de llamadas excedido

Para resolver el error, se aplica la condición if para restringir el tamaño de la pila en JavaScript. Por ejemplo, el código se da a continuación.

Código

estaba i = 1 ;
divertido_usuario ( i ) ;
función divertido_usuario ( i ) {
si ( i < = 10 )
{
consola.log ( 'Bienvenido a JavaScript' ) ;
i =yo+ 1 ;
divertido_usuario ( i ) ;
} }

 

La descripción del código es la siguiente:

  • En primer lugar, una variable 'i' se inicializa con el valor 1.
  • Después, divertido_usuario() método se emplea pasando la variable 'i'.
  • En esta función, si se aplica una condición que restringe la iteración a 10 .
  • Finalmente, el mensaje 'Bienvenido a JavaScript' se muestra usando el “consola.log()” método.

Producción

Solución 2: usar for Loop para resolver el error de tamaño máximo de pila de llamadas excedido

Para resolver el error, se utiliza un bucle for para limitar las iteraciones en JavaScript. Por ejemplo, el código se da a continuación.

Código

dejar salida = 0 ;
por ( dejar yo = 5 ; i > 0 ; i-- )
{
salida += añadir ( 1 , 1 ) ;
}
función agregar ( un, b ) {
devolver a + b;
}
consola.log ( producción ) ;

 

En este código:

  • La variable 'producción' se inicializa con un valor de 0.
  • Después de eso, se utiliza un bucle for para realizar cinco iteraciones. En este bucle, el agregar() El método se llama pasando el valor 1.
  • El método agregar() devuelve la suma de dos variables a y b .
  • Al final, el Iniciar sesión() se emplea el método para mostrar la salida en la ventana de la consola.

Producción

La salida vuelve “10” resolviendo el error del tamaño máximo de la pila de llamadas en JavaScript.

Conclusión

El llamado infinito de las funciones recursivas ocurre cuando el 'Error de tamaño máximo de pila de llamadas superado' en JavaScript. Este artículo explica las razones por las que se produce este tipo de error. Después, dos soluciones, incluyendo 'en bucle' y 'declaraciones condicionales' se utilizan para resolver el error. Por lo tanto, las funciones de llamada están restringidas al emplear estas soluciones.