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.