Рекурсивные функции — это функции, которые вызывают метод внутри другого метода. Однако бесконечная рекурсия вызывает ошибку размера стека. Ошибка размера стека возникает из-за ожидания многих запросов. Эта проблема возникает при вызове самой функции. Учитывая это, эта статья объясняет, что максимальный размер стека вызовов превышает ошибку в 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. В этой статье объясняются причины возникновения ошибок такого типа. После этого два решения, в том числе 'для цикла' а также «условные операторы» используются для устранения ошибки. Следовательно, вызывающие функции ограничены использованием этих решений.