1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト

[解決済み】最大呼び出しスタックサイズ超過エラー

2021-12-28 12:56:33

JavaScriptのコードを実行したところ、Safari(デスクトップとiPad)でのみエラーが発生しました。

<ブロッククオート

最大呼び出しスタックサイズを超えました。

解決方法は?

これは一般的に、ある関数を呼び出し、その関数が別の関数を呼び出し、さらにその関数を呼び出し続けてコールスタックの限界に達したときに発生します。

(function a() {
    a();
})();

以下は、何度か呼び出した後のスタックです...。

ご覧のとおり、コールスタックは、ブラウザにハードコードされたスタック サイズまたはメモリの枯渇という制限に達するまで成長します。

この問題を解決するには、再帰的な関数が満たすことのできる基本ケースを持っていることを確認します...

(function a(x) {
    if ( ! x) {
        return;
    }
    a(--x);
})(10);