Junior
Como funciona a pilha em JavaScript?
sobes.tech IA
Resposta da IA
A pilha de chamadas (Call Stack) é uma estrutura de dados que rastreia a execução de funções. Quando uma função é chamada, ela é colocada no topo da pilha. Quando a função termina, ela é removida da pilha. O JavaScript é de thread única, portanto, possui uma única pilha de chamadas.
Operações principais:
- Push: Adicionar uma função ao topo da pilha.
- Pop: Remover uma função do topo da pilha.
Exemplo:
// A função A chama a função B
function A() {
B(); // B é colocada na pilha
console.log('A terminou'); // Quando B terminar, A continuará
}
// A função B chama a função C
function B() {
C(); // C é colocada na pilha
console.log('B terminou'); // Quando C terminar, B continuará
}
// A função C simplesmente imprime na consola
function C() {
console.log('C terminou'); // C termina, removida da pilha
}
A(); // Chamada de A. A é colocada na pilha.
// Pilha: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []
Acompanhamento da pilha:
| Ação | Pilha |
|---|---|
A() chamado |
[A] |
B() chamado |
[A, B] |
C() chamado |
[A, B, C] |
C() termina |
[A, B] |
B() termina |
[A] |
A() termina |
[] |
Os erros de estouro de pilha (Stack Overflow) ocorrem quando a pilha enche com chamadas excessivas (por exemplo, recursão infinita) e não consegue adicionar novas funções.