Junior
Cum funcționează stiva în JavaScript?
sobes.tech AI
Răspuns de la AI
Stiva de apel (Call Stack) este o structură de date care urmărește execuția funcțiilor. Când o funcție este apelată, este plasată în vârful stivei. Când funcția se termină, este eliminată din stivă. JavaScript este single-threaded, deci are o singură stivă de apeluri.
Operații principale:
- Push: Adăugarea unei funcții în vârful stivei.
- Pop: Eliminarea unei funcții din vârf.
Exemplu:
// Funcția A apelează funcția B
function A() {
B(); // B este plasată pe stivă
console.log('A terminat'); // Când B se termină, A continuă
}
// Funcția B apelează funcția C
function B() {
C(); // C este plasată pe stivă
console.log('B terminat'); // Când C se termină, B continuă
}
// Funcția C pur și simplu afișează în consolă
function C() {
console.log('C terminat'); // C se termină, este eliminată din stivă
}
A(); // Apelarea A. A este plasată pe stivă.
// Stivă: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []
Urmărirea stivei:
| Acțiune | Stivă |
|---|---|
A() este apelată |
[A] |
B() este apelată |
[A, B] |
C() este apelată |
[A, B, C] |
C() se termină |
[A, B] |
B() se termină |
[A] |
A() se termină |
[] |
Erorile de tip Stack Overflow apar atunci când stiva se umple prea mult cu apeluri (de exemplu, în cazul recursiei infinite) și nu mai poate adăuga funcții noi.