JavaScript에서 최대 호출 스택 크기 초과 오류 | 설명

Javascripteseo Choedae Hochul Seutaeg Keugi Chogwa Olyu Seolmyeong



재귀 함수는 다른 메서드 내에서 메서드를 호출하는 함수입니다. 그러나 무한 재귀는 스택 크기 오류를 일으킵니다. 많은 요청이 보류되어 스택 크기 오류가 발생합니다. 이 문제는 함수 자체를 호출할 때 발생합니다. 이를 고려하여 최대 호출 스택 크기가 JavaScript의 오류를 초과한다고 설명합니다. 또한 오류를 해결하기 위한 솔루션도 제공됩니다.

이 기사는 다음과 같은 서비스를 제공합니다.







  • JavaScript에서 최대 호출 스택 크기 초과 오류
  • if 조건을 사용하여 최대 호출 스택 크기 초과 오류 해결
  • for 루프를 사용하여 최대 호출 스택 크기 초과 오류를 해결합니다.

JavaScript에서 최대 호출 스택 크기 초과 오류

사용자가 재귀 함수를 호출할 때 스택 크기 초과 오류가 발생합니다. 이러한 유형의 오류는 메서드를 반복적으로 호출하기 때문에 발생합니다. 그만큼 fun_user() 함수 내에서 재귀 호출로 활용됩니다. fun_user() JavaScript에서 콘솔 창에서 오류를 생성합니다.



암호



console.log ( '최대 호출 스택 크기 초과' ) ;
fun_user ( ) ;
기능 fun_user ( )
{
fun_user ( ) ;
}





이 코드에서는 '최대 호출 스택 크기 초과 오류' 메서드를 호출하여 생성됩니다. 'fun_user()' 함수 내부.



코드는 다음과 같이 오류를 표시합니다. 'RangeError: 최대 호출 스택 크기를 초과했습니다.'

다음과 같은 여러 가지 방법으로 이 오류를 해결할 수 있습니다. for 루프 그리고 조건문 , 함수 호출을 제한하는 데 사용할 수 있습니다.

솔루션 1: if 조건을 사용하여 최대 호출 스택 크기 초과 오류 해결

오류를 해결하기 위해 JavaScript에서 스택 크기를 제한하는 if 조건이 적용됩니다. 예를 들어 코드는 아래와 같습니다.

암호

~였다 = 1 ;
fun_user ( ) ;
기능 fun_user ( ) {
만약에 ( < = 10 )
{
console.log ( '자바스크립트에 오신 것을 환영합니다' ) ;
=나+ 1 ;
fun_user ( ) ;
} }

코드에 대한 설명은 다음과 같습니다.

  • 먼저 변수 '나' 값 1로 초기화됩니다.
  • 이후, fun_user() 방법은 변수를 전달하여 사용됩니다. '나'.
  • 이 함수에서 반복을 제한하는 조건이 적용되면 10 .
  • 마지막으로 메시지 “자바스크립트에 오신 것을 환영합니다” 를 사용하여 표시됩니다. 'console.log()' 방법.

산출

솔루션 2: for 루프를 사용하여 최대 호출 스택 크기 초과 오류 해결

오류를 해결하기 위해 for 루프를 사용하여 JavaScript에서 반복을 제한합니다. 예를 들어 코드는 아래와 같습니다.

암호

허락하다 출력 = 0 ;
~을 위한 ( 허락하다 나는 = 5 ; 나 > 0 ; 나-- )
{
출력 += 추가 ( 1 , 1 ) ;
}
기능 추가하다 ( 에이, ㄴ ) {
반품 a + b;
}
console.log ( 산출 ) ;

이 코드에서:

  • 변수 '산출' 0 값으로 초기화됩니다.
  • 그런 다음 for 루프를 사용하여 5번의 반복을 수행합니다. 이 루프에서 추가하다() 메소드는 값 1을 전달하여 호출됩니다.
  • 방법 추가하다() 두 변수를 더한 값을 반환합니다. 그리고 .
  • 결국, 통나무() 방법은 콘솔 창에 출력을 표시하는 데 사용됩니다.

산출

출력 반환 “10” JavaScript의 최대 호출 스택 크기 오류를 해결합니다.

결론

재귀 함수의 무한 호출은 다음과 같이 발생합니다. '최대 호출 스택 크기 초과 오류' 자바스크립트에서. 이 문서에서는 이러한 유형의 오류가 발생하는 이유를 설명합니다. 그 후, 다음을 포함한 두 가지 솔루션 'for 루프' 그리고 '조건문' 오류를 해결하기 위해 사용됩니다. 따라서 이러한 솔루션을 사용하면 호출 기능이 제한됩니다.