27 / 43
Что такое рекурсия и оптимизация хвостовых вызовов (TCO)?
Рекурсия это приём, при котором функция вызывает саму себя для решения подзадачи. Каждый вызов добавляет фрейм в стек вызовов. Оптимизация хвостовых вызовов (TCO / Tail Call Optimization) позволяет движку переиспользовать текущий фрейм стека, если рекурсивный вызов стоит в хвостовой позиции (последняя операция функции). На практике TCO поддерживается только в Safari (JavaScriptCore), V8 и SpiderMonkey её не реализовали.