末尾再帰、つまり関数が return を実行する前に自身を最後に呼び出しているメソッド呼び出しを報告します。 末尾再帰は常にループに置換できます。その結果、処理が大幅に高速化します。 一部の JavaScript エンジンは末尾呼び出しの最適化を行いますが、行わないものもあります。 そのため、末尾再帰の解決に関わるパフォーマンス特性は、環境によって大きく異なる可能性があります。