Sobes.tech
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.