Çağrı Yığını
İşlev çağrılarının nasıl izlendiğini görün.
Çağrı Yığını, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.
Çağrı Yığını Nedir?
Çağrı yığını, JavaScript'in hangi işlevin o anda çalıştığını ve dönüşün nereye yapılacağını takip etme biçimidir. Her işlev çağrısı yığının en üstüne eklenir; tamamlandığında yığından çıkarılır.
Bu, bir LIFO yapısıdır: Son Giren, İlk Çıkar.
Yığına Ekleme ve Yığından Çıkarma
Bir işlevi çağırdığınızda yığına bir yığın çerçevesi eklenir. İşlev döndürdüğünde çerçeve yığından çıkarılır. Çağrılar iç içe geçtiğinde günlük kayıtlarının sırasını gözlemleyin.
function first() {
console.log('first start');
second();
console.log('first end');
}
function second() {
console.log('second');
}
first();LIFO Uygulamada
En son çağrılan işlev, altında bulunan işlevin yürütülmesine devam edilmeden önce tamamlanmalıdır. İç çağrı, en son başlamış olmasına rağmen önce tamamlanır.
function a() {
console.log('enter a');
b();
console.log('exit a');
}
function b() {
console.log('enter b');
c();
console.log('exit b');
}
function c() {
console.log('c runs');
}
a();Senkron Çalışma Engelleyicidir
JavaScript tek bir iş parçacığında aynı anda tek bir iş yürütür. Yığında çerçeveler varken başka hiçbir şey çalışmaz. Senkron kod tamamlanana kadar yürütmeyi engeller.
console.log('start');
function busy() {
let sum = 0;
for (let i = 0; i < 1000; i++) sum += i;
return sum;
}
console.log(busy());
console.log('end');Dönüş Değerleri Aşağıya İlerler
Her çerçeve yığından çıkarıldığında, dönüş değeri yığının altında kendisini bekleyen çağırana geri iletilir.
function square(n) {
return n * n;
}
function sumOfSquares(a, b) {
return square(a) + square(b);
}
console.log(sumOfSquares(3, 4));Özyineleme Yığını Büyütür
Her özyinelemeli çağrı yeni bir çerçeve ekler. Temel duruma ulaşılana kadar yığın büyür, ardından çerçeveler birer birer çözülür.
function countdown(n) {
if (n === 0) {
console.log('liftoff');
return;
}
console.log(n);
countdown(n - 1);
}
countdown(3);Yığın Taşması
Yığının boyutu sınırlıdır. Temel durumu olmayan özyineleme, motor RangeError: Maksimum çağrı yığını boyutu aşıldı hatasını verene kadar çerçeve eklemeyi sürdürür.
function endless(n) {
return endless(n + 1);
}
try {
endless(1);
} catch (e) {
console.log(e.name);
}Yürütme Sırası Öngörülebilirdir
Yığın kesin olarak LIFO düzenini izlediği ve çalışma senkron olduğu için senkron günlük kayıtlarının sırası her zaman belirleyicidir. Sırayı elle izleyebilirsiniz.
function outer() {
console.log(1);
inner();
console.log(3);
}
function inner() {
console.log(2);
}
outer();
console.log(4);Eşzamansızlık Nerede Devreye Girer
Çağrı yığını yalnızca senkron kodu çalıştırır. setTimeout gibi işlevler işi ortama devreder; ortam da daha sonra geri çağrıları kuyruklara yerleştirir. Bu geri çağrılar ancak yığın boş olduğunda çalışır.
Bu, olay döngüsüne geçiş noktasıdır.
console.log('A');
setTimeout(() => console.log('B (later)'), 0);
console.log('C');Önce Yığın Temizlenmelidir
Sıfır milisaniyelik bir zamanlayıcı bile tüm senkron kodun tamamlanmasını bekler. Yığında çerçeveler varken geri çağrı çalışamaz.
console.log('sync 1');
setTimeout(() => console.log('timeout'), 0);
console.log('sync 2');
console.log('sync 3');Çağrı Yığını Neden Önemlidir?
Çağrı yığınını anlamak, uzun senkron döngülerin bir sayfayı neden dondurduğunu, özyinelemenin neden taşmaya yol açabildiğini ve eşzamansız geri çağrıların neden her zaman en son çalıştığını açıklar. Bu, olay döngüsündeki her şeyin temelidir.
function compute() {
return [1, 2, 3].reduce((a, b) => a + b, 0);
}
console.log('before');
console.log(compute());
console.log('after');Hızlı Yoklama
Çağrı yığını hangi sıralama ilkesini izler?
Özet: Çağrı Yığını
Motorun yürütme çekirdeğini öğrendiniz:
- Çağrı yığını, çalışan işlevleri LIFO düzeninde takip eder.
- JavaScript tek iş parçacıklıdır ve senkron kod yürütmeyi engeller.
- Özyineleme yığını büyütür ve taşmaya yol açabilir.
- Eşzamansız geri çağrılar yığın boşalana kadar bekler; bu da bizi olay döngüsüne götürür.
Sıkça Sorulan Sorular
“Çağrı Yığını” dersi ücretsiz mi?
Evet — “Çağrı Yığını” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.
“Çağrı Yığını” dersinde ne öğreneceğim?
İşlev çağrılarının nasıl izlendiğini görün. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Çağrı Yığını” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.