Does JavaScript support tail call optimization?
The ES6 spec includes tail call optimization, but most engines (including V8) do not implement it. In practice, deep recursion still overflows the stack and should be converted to iteration.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in Stack Overflow in JavaScript: Causes and Fixes
Unbounded or very deep recursion. Each call adds a frame to the call stack without popping one, until the engine's maximum stack size is exceeded and a RangeError is thrown.
RangeError: Maximum call stack size exceeded. It is thrown when the call stack hits the engine's allocated limit.
Always include a base case that stops the recursion. For deep recursion that cannot be bounded, convert to an iterative loop or use a trampoline to run recursive steps without growing the stack.
Still have questions?
Browse all our FAQs or reach out to our support team
