JavaScriptでは、以下のような関数の再帰呼び出しをすると、ブラウザごとに定義されている最大コールスタック数を超えたとき、エラーが出ます。 var i = 0; function recurse() { i++; recurse(); } recurse(); // Uncaught RangeError: Maximum call stack size exceeded // InternalError: too much recursion 手元のGoogle Chromeでは、上記のコードでiが20888まで増加したところでエラーが出ました。 このエラーを一般に、「スタックオーバーフロー」と言います。 スタックオーバーフローの回避JavaScriptにおいて、このエラーは、再帰的に呼び出す関数を非同期的に呼び出すことによって回避できます。すなわち、以下のようにすることで、スタッ