특히 IE에서 흔히 발생하는 클라이언트측 Javascript 스택 오버플로 문제는 IE에 비해 브라우저의 제한된 스택 크기로 인해 발생할 수 있습니다. Firefox나 Chrome과 같은 다른 브라우저. 이 제한으로 인해 스택 공간 부족으로 인해 실행 중에 함수가 중단될 수 있습니다.
스택 크기 제한을 설명하려면 다음 코드를 고려하세요.
<code class="html"><script type="text/javascript"> function doSomething() { var i = 3200; doSomethingElse(i); } function doSomethingElse(i) { if (i == 0) return -1; doSomethingElse(i - 1); } doSomething(); </script></code>
IE에서 실행될 때 이 코드는 i = 3200 부근에서 스택 오버플로 예외가 발생하는 반면 Chrome 및 Firefox와 같은 브라우저는 훨씬 더 깊은 재귀를 처리할 수 있습니다.
스택 오버플로를 담당하는 함수를 식별하고 스택 추적을 얻으려면 다음과 같은 간단한 테스트를 수행할 수 있습니다.
<code class="javascript">var i = 0; function inc() { i++; inc(); } try { inc(); } catch (e) { // Adjust for the StackOverflow sandbox's additional frame i++; console.log('Maximum stack size is', i, 'in your current browser'); }</code>
스택 오버플로가 발생할 때까지 inc 함수를 점진적으로 호출하는 테스트입니다. 예외가 발생했을 때 i 값을 로깅하여 최대 스택 크기를 결정할 수 있습니다.
위 내용은 브라우저 JavaScript 스택 크기는 함수 실행에 어떤 영향을 미치나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!