RangeError: Maximum call stack size exceeded
JavaScriptで再帰呼び出しが深すぎる場合に発生するエラー
概要
RangeError: Maximum call stack size exceeded は、JavaScriptで再帰呼び出しが深くなりすぎてコールスタックが溢れた場合に発生するエラーです。無限ループの再帰や、意図しない循環参照が主な原因です。
エラーメッセージ
RangeError: Maximum call stack size exceeded
Uncaught RangeError: Maximum call stack size exceeded
at factorial (script.js:2)
at factorial (script.js:3)
at factorial (script.js:3)
...
原因
1. 無限再帰
| |
2. 終了条件の間違い
| |
3. 循環参照のJSON変換
| |
4. イベントリスナーの連鎖
| |
解決策
1. 正しい終了条件を設定
| |
2. 末尾再帰最適化(Tail Call Optimization)
| |
3. ループに変換
| |
4. トランポリン関数
| |
5. 循環参照の検出
| |
6. 非同期処理で分割
| |
7. 再帰の深さを制限
| |
関連エラー
関連エラー
JavaScript の他のエラー
この記事は役に立ちましたか?