Ошибка превышения максимального размера стека вызовов в JavaScript | Объяснение

Osibka Prevysenia Maksimal Nogo Razmera Steka Vyzovov V Javascript Ob Asnenie



Рекурсивные функции — это функции, которые вызывают метод внутри другого метода. Однако бесконечная рекурсия вызывает ошибку размера стека. Ошибка размера стека возникает из-за ожидания многих запросов. Эта проблема возникает при вызове самой функции. Учитывая это, эта статья объясняет, что максимальный размер стека вызовов превышает ошибку в JavaScript. Кроме того, также предоставляется решение для устранения ошибки.

Статья служит нам следующим образом:







  • Ошибка превышения максимального размера стека вызовов в JavaScript
  • Использование условия if для устранения ошибки превышения максимального размера стека вызовов
  • Использование цикла for для устранения ошибки превышения максимального размера стека вызовов.

Ошибка превышения максимального размера стека вызовов в JavaScript

Ошибка превышения размера стека возникает, когда пользователь вызывает рекурсивную функцию. Этот тип ошибки возникает из-за многократного вызова метода. fun_user() используется как рекурсивный вызов внутри функции fun_user() в JavaScript для генерации ошибки в окне консоли.



Код



console.log ( 'Превышен максимальный размер стека вызовов' ) ;
fun_user ( ) ;
функция fun_user ( )
{
fun_user ( ) ;
}





В этом коде «Ошибка превышения максимального размера стека вызовов» генерируется вызовом метода «fun_user()» внутри функции.



Код отображает ошибку как «RangeError: превышен максимальный размер стека вызовов».

Есть много способов устранить эту ошибку, например для цикла а также условные операторы , который можно использовать для ограничения вызова функции.

Решение 1. Использование условия if для устранения ошибки превышения максимального размера стека вызовов

Чтобы устранить ошибку, применяется условие if для ограничения размера стека в JavaScript. Например, код приведен ниже.

Код

был я знак равно 1 ;
fun_user ( я ) ;
функция fun_user ( я ) {
если ( я < знак равно 10 )
{
console.log ( «Добро пожаловать в JavaScript» ) ;
я =я+ 1 ;
fun_user ( я ) ;
} }

Описание кода выглядит следующим образом:

  • Во-первых, переменная 'я' инициализируется значением 1.
  • После того, fun_user() метод используется путем передачи переменной 'я'.
  • В этой функции, если применяется условие, которое ограничивает итерацию до 10 .
  • Наконец, сообщение «Добро пожаловать в JavaScript» отображается с помощью «console.log()» метод.

Выход

Решение 2. Использование цикла for для устранения ошибки превышения максимального размера стека вызовов

Чтобы устранить ошибку, используется цикл for для ограничения итераций в JavaScript. Например, код приведен ниже.

Код

позволять выход = 0 ;
за ( позволять я = 5 ; я > 0 ; я-- )
{
вывод += добавить ( 1 , 1 ) ;
}
функция добавлять ( а, б ) {
возвращаться а + б;
}
console.log ( выход ) ;

В этом коде:

  • Переменная 'выход' инициализируется значением 0.
  • После этого цикл for используется для выполнения пяти итераций. В этом цикле добавлять() вызывается путем передачи значения 1.
  • Метод добавлять() возвращает сложение двух переменных а а также б .
  • В конце концов, журнал() метод используется для отображения вывода в окне консоли.

Выход

Выход возвращается «10» путем устранения ошибки максимального размера стека вызовов в JavaScript.

Вывод

Бесконечный вызов рекурсивных функций происходит по мере того, как «Ошибка превышения максимального размера стека вызовов» в JavaScript. В этой статье объясняются причины возникновения ошибок такого типа. После этого два решения, в том числе 'для цикла' а также «условные операторы» используются для устранения ошибки. Следовательно, вызывающие функции ограничены использованием этих решений.