Sobes.tech
Junior

JavaScriptda stek qanday ishlaydi?

sobes.tech AI

AIdan javob

Call Stack (Qo'ng'iroq yig'indi) — bu funksiyalar bajarilishini kuzatadigan ma'lumotlar tuzilmasi. Funksiya chaqirilganda, u yigining yuqori qismiga joylashtiriladi. Funksiya tugagach, u yig'indan olib tashlanadi. JavaScript yagona ipda ishlaydi, shuning uchun u bitta chaqiriq yiginiga ega.

Asosiy operatsiyalar:

  • Push: Funksiyani yigining yuqori qismiga qo'shish.
  • Pop: Funksiyani yigining yuqori qismidan olib tashlash.

Misol:

// A funksiyasi B funksiyasini chaqiradi
function A() {
  B(); // B yigining yuqori qismiga joylashtiriladi
  console.log('A tugadi'); // B tugagach, A davom etadi
}

// B funksiyasi C funksiyasini chaqiradi
function B() {
  C(); // C yigining yuqori qismiga joylashtiriladi
  console.log('B tugadi'); // C tugagach, B davom etadi
}

// C funksiyasi oddiygina konsolga chiqaradi
function C() {
  console.log('C tugadi'); // C tugaydi, yig'indan olib tashlanadi
}

A(); // A chaqiriladi. A yigining yuqori qismiga joylashtiriladi.
// Yig'indi: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []

Yig'indi kuzatuvi:

Amal Yig'indi
A() chaqiriladi [A]
B() chaqiriladi [A, B]
C() chaqiriladi [A, B, C]
C() tugaydi [A, B]
B() tugaydi [A]
A() tugaydi []

Stack Overflow xatolari, yigin juda ko'p chaqiriqlar bilan to'ldirilganda (masalan, cheksiz rekursiya), yuzaga keladi va yangi funksiyalar qo'shila olmaydi.