Javascript: Yürütme bağlamı (Aze)
Yazdığımız kodlar çalışırken arka planda bizim göremediğimiz işlemler oluyor. Javascript motoru kodları okuyup çalıştırırken bunu 2 adımda yapar . Yürütme bağlamı olarak adlandırılan bu genel süreç, oluşturma aşaması ve yürütme aşaması olarak belirttiğimiz gibi 2 aşamaya sahiptir .
Oluşturma aşaması olarak adlandırılan ilk aşamada, JS motoru bir tür koda alışma ve hazırlık çalışması yapar. Bir Bağlam oluşturur, değişkenleri ve işlevleri depolamak için bellek ayırır. Yürütme aşaması olan bir sonraki aşamada , JS motoru bahsettiğimiz değerleri zaten aşina olduğu değişkenlere asimile eder ve işlevleri çağırır.
Bunu bir çeşit yemek hazırlamaya benzetebiliriz. Hazırlayacağımız yemek için hangi malzemelerin gerekli olduğunu baştan öğreniyoruz (Yaratılış aşaması).
Daha sonra erzak miktarını belirleyip mamayı hazırlamak için harekete geçiyoruz (Yürütme aşaması).
Kod ilk kez çalıştırıldığında, önce global yürütme bağlamı oluşturulur ve bahsedilen aşamalar yürütülür. Ardından, işlevler varsa ve çağrılırsa, işlevsel yürütme bağlamları oluşturulur ve her iki aşama da yürütülür.
Küçük bir kod ile tüm bunları pratik olarak görebiliriz.
- Bu kod motor tarafından okunduğunda, önce global bir içerik oluşturulacaktır .
2. Fark etmişsinizdir diye söylüyorum, getTechStack işlevinde tech değişkeniyle hiçbir şey yapılmadı . Bunun nedeni, değişkenin getTechStack işlevinin içinde olmasıdır . Bu fonksiyon 9. satırdaki gibi çağrıldıktan sonra yeni bir fonksiyonel içerik oluşturulacak ve bu bağlamda tekrar 2 faz yürütülecektir. Ancak o zaman teknoloji değişkeni diğer değişkenler gibi ele alınacaktır.
Global bağlamdan farklı olarak, fonksiyonel bağlamdaki global nesne , fonksiyonun parametrelerini ifade eden argümanlar nesnesine eşit olacaktır.
Böylece, global bağlam dışında bir işlev her çağrıldığında, yeni bir bağlam oluşturulacak ve aynı prosedür tekrarlanacaktır.
Okuduğunuz için teşekkürler. :)
Diğer başlıklar:

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



































