Стек вызовов (Call Stack) — это структура данных, которая отслеживает выполнение функций. Когда функция вызывается, она помещается на вершину стека. Когда функция завершает работу, она удаляется из стека. JavaScript однопоточный, поэтому у него один стек вызовов.
Основные операции:
Пример:
javascript
Отслеживание стека:
| Действие | Стек |
|---|---|
A() вызывается | [A] |
B() вызывается | [A, B] |
C() вызывается | [A, B, C] |
C() завершается | [A, B] |
B() завершается | [A] |
A() завершается | [] |
Ошибки переполнения стека (Stack Overflow) происходят, когда стек заполняется слишком большим количеством вызовов (например, при бесконечной рекурсии) и не может добавить новые функции.