Junior
Hogyan működik a verstack a JavaScriptben?
sobes.tech MI
Válasz az MI-től
A hívási verem (Call Stack) egy adatszerkezet, amely nyomon követi a függvények végrehajtását. Amikor egy függvényt hívnak, az a verem tetejére kerül. Amikor a függvény befejeződik, eltávolítják a veremből. A JavaScript egyszálú, ezért egyetlen hívási verem van.
Fő műveletek:
- Push: Egy függvény hozzáadása a verem tetejére.
- Pop: Egy függvény eltávolítása a verem tetejéről.
Példa:
// Az A függvény meghívja a B függvényt
function A() {
B(); // B a veremre kerül
console.log('A kész'); // Amikor B befejeződik, az A folytatódik
}
// A B függvény meghívja a C függvényt
function B() {
C(); // C a veremre kerül
console.log('B kész'); // Amikor C befejeződik, B folytatódik
}
// A C egyszerűen kiírja a konzolra
function C() {
console.log('C kész'); // C befejeződik, eltávolítják a veremből
}
A(); // A meghívása. A a veremre kerül.
// Verem: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []
Verem követése:
| Művelet | Verem |
|---|---|
A() hívására |
[A] |
B() hívására |
[A, B] |
C() hívására |
[A, B, C] |
C() befejeződik |
[A, B] |
B() befejeződik |
[A] |
A() befejeződik |
[] |
A verem túlcsordulási hibák akkor fordulnak elő, amikor a verem túl sok hívással töltődik meg (például végtelen rekurzió esetén), és nem tud új függvényeket hozzáadni.