JavaScript'te Yürütme Bağlamı
Bir örnekle başlayalım ve ardından bu kodun perde arkasında nasıl çalıştığını inceleyelim.
var x = 10;
var y = 20;
function add(a,b){
return a+b;
}
var result = add(x,y);
console.log(result) //30
İlk olarak, x & y değişkenlerini bildirin ve ilgili vlaue 10 & 20 ile başlatın.
İkinci olarak, argümanı kabul eden ve argümanların toplamını, yani 10 + 20 = 30'u döndüren toplama işlevini bildirin.
Üçüncüsü, x & y değişkeninin değerleri olarak bağımsız değişkenlerle toplama işlevini çağırın ve sonucu değişken sonuçta saklayın.
Son olarak, konsol ile değişken sonucunun çıktısı.
Yukarıdaki kodu çalıştırırken JavaScript birçok şey yapar.
JavaScript motoru o sırada JavaScript kodunu çalıştırdığında, yürütme bağlamları oluşturur.
Her yürütme bağlamının iki aşaması vardır
- Oluşturma aşaması.
- Yürütme aşaması.
JavaScript motoru kodu ilk kez çalıştırdığında, genel yürütme bağlamını oluşturur. Bu aşamada JavaScript bazı görevleri yerine getirir.
- Global nesneyi, yani web tarayıcısında pencere veya Node.js'de global oluşturun.
- Bu nesneyi (bu anahtar kelime) oluşturun ve onu global nesneye bağlayın, Web tarayıcısı durumunda bu anahtar kelime pencere nesnesine eklenir ve Node js'de bu anahtar kelime global nesneye eklenir.
- Değişken ve işlev referanslarını depolamak için bir bellek yığını kurun.
- İşlev bildirimlerini bellek öbeğinde ve değişkenleri genel yürütme bağlamında, başlangıç değerleri tanımsız olacak şekilde saklayın.
- x, y & result değişkenini ve add() işlev bildirimini genel yürütme bağlamında saklayın.
- Değişkenleri tanımsız değerle başlatın, yani x = tanımsız, y = tanımsız ve sonuç = tanımsız.
Yürütme aşaması
Yürütme aşamasında, JavaScript motoru kodu satır satır yürütür, değerleri değişkene atar ve işlev çağrılarını yürütür.
Her işlev çağrısı için, JavaScript motoru yeni bir işlevsel yürütme çağrısı oluşturur.
İşlev yürütme bağlamı, genel yürütme bağlamına benzer. Ancak, genel nesneyi oluşturmak yerine, JavaScript motoru, işlevin tüm parametrelerine referans olan argümanlar nesnesini oluşturur.
Örneğimizde, JavaScript motoru, işleve iletilen tüm parametrelere başvuran bir argüman nesnesi oluşturur ve web tarayıcısı olması durumunda bu değeri global nesneye ayarlar, bu değer pencere nesnesine eklenir ve Node js'de bu değer global ile eklenir. nesne ve ayrıca a & b parametresini tanımsız değerle başlatır.
İşlev yürütme bağlamının yürütme aşamasında, JavaScript motoru a & b parametrelerine 10 ve 20 değeri atar ve sonucu (30) genel yürütme bağlamına döndürür.
JavaScript motoru, genel yürütme bağlamı ve işlev yürütme bağlamları dahil olmak üzere tüm yürütme bağlamlarını takip etmek için çağrı yığınını kullanır.
Arayı soğutmayalım
Umarım bu yazı sizin için değerlidir, bir sonraki yazıda görüşmek üzere!

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































