Junior
Ako funguje zásobník v JavaScripte?
sobes.tech AI
Odpoveď od AI
Zásobník volaní (Call Stack) je dátová štruktúra, ktorá sleduje vykonávanie funkcií. Keď je funkcia volaná, je umiestnená na vrchol zásobníka. Keď funkcia skončí, je odstránená zo zásobníka. JavaScript je jednobodový, takže má jeden zásobník volaní.
Hlavné operácie:
- Push: Pridať funkciu na vrchol zásobníka.
- Pop: Odstrániť funkciu z vrchu zásobníka.
Príklad:
// Funkcia A volá funkciu B
function A() {
B(); // B je umiestnená na zásobník
console.log('A dokončené'); // Keď B skončí, A pokračuje
}
// Funkcia B volá funkciu C
function B() {
C(); // C je umiestnená na zásobník
console.log('B dokončené'); // Keď C skončí, B pokračuje
}
// Funkcia C jednoducho vypisuje do konzoly
function C() {
console.log('C dokončené'); // C končí, odstraňuje sa zo zásobníka
}
A(); // Volanie A. A je umiestnená na zásobník.
// Zásobník: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []
Sledovanie zásobníka:
| Akcia | Zásobník |
|---|---|
A() sa volá |
[A] |
B() sa volá |
[A, B] |
C() sa volá |
[A, B, C] |
C() končí |
[A, B] |
B() končí |
[A] |
A() končí |
[] |
Chyby pretečenia zásobníka (Stack Overflow) nastávajú, keď sa zásobník naplní príliš veľkým počtom volaní (napríklad v nekonečnej rekurzii) a nemôže pridať nové funkcie.