--- title: Call stack (Pilha de chamadas) slug: Glossario/Call_stack translation_of: Glossary/Call_stack ---
A pilha de chamadas (call stack) é um mecanismo do interpretador de uma linguagem que organiza o funcionamento do script quando são chamadas muitas funções, qual função está sendo executada no momento, e quais serão chamadas dentro de alguma função, etc.
function saudacao() { // [1] Algum código aqui digaOi(); // [2] Algum código aqui } function digaOi() { return "Olá!"; } // Chamando a função `saudacao` saudacao(); // [3] Algum código aqui
O código acima será executado desta forma pelo interpretador:
saudacao()
.saudacao()
para a pilha de chamadas.
Pilha de chamadas:
- saudacao
saudacao()
.digaOi()
.digaOi()
na pilha de chamadas.
Pilha de chamadas:
- saudacao
- digaOi
digaOi()
até o final.digaOi()
e continua a execução do resto da função saudacao()
.digaOi()
da pilha de chamadas.
Pilha de chamadas:
- saudacao
saudacao()
forem executadas, retorna para a linha onde a função foi invocada, e continua a execução do resto do código.saudacao()
da Pilha de chamadas.
Pilha de chamadas:
EMPTY
Começamos com uma pilha de chamadas vazia, e sempre que chamamos uma função, ela é automaticamente adicionada à pilha de chamadas, e depois de todas as linhas serem executadas, é automaticamente removida da pilha de chamadas. No final, a pilha está vazia novamente.