𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗧𝗲𝗺𝗲𝗹𝗹𝗲𝗿𝗶: 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗡𝗲𝘀𝗻𝗲𝗹𝗲𝗿 𝘃𝗲 𝗬ü𝗿ü𝘁𝗺𝗲

JavaScript iki şekilde çalışır: senkron ve asenkron.

Senkron kod satır satır çalışır. Motor, bir sonraki göreve başlamadan önce mevcut görevi tamamlar. Bu durum, bir sonraki görevin çalışmasını engeller (bloklar).

Asenkron kod, görevlerin bağımsız olarak çalışmasına olanak tanır. Bir görevi başlatır ve beklerken bir sonrakine geçersiniz. Bu, web uygulamalarında performansı artırır.

Temel asenkron kavramlar: • Callbacks: Daha sonra çalıştırılmak üzere diğer fonksiyonlara iletilen fonksiyonlar. • Promises: Bir işlemin sonucunu temsil eden nesneler. • Async/Await: Asenkron kodun okunmasını kolaylaştıran modern sözdizimi. • Event Loop: Görev yürütmesini yöneten sistem.

Süreçleri (Processes) ve İş Parçacıklarını (Threads) Anlamak

Bir süreç (process), yürütülmekte olan bir programdır. • Süreçler izoledir. • Belleği paylaşmazlar. • Bir süreç, alt süreçler (child processes) oluşturabilir. • Sonlandırılmaları daha fazla zaman alır.

Bir iş parçacığı (thread), bir sürecin bir bölümüdür. • Bir sürecin birçok iş parçacığı olabilir. • İş parçacıkları belleği paylaşır. • Sonlandırılmaları daha az zaman alır.

Callback Fonksiyonu Nedir?

Callback, bir argüman olarak iletilen bir fonksiyondur. Dış fonksiyon, bir görevi tamamlamak için onu çağırır. Callback'leri şunlar için kullanın: • Veri çekme gibi asenkron görevler. • Buton tıklamaları gibi olay işleme (event handling) işlemleri. • Yeniden kullanılabilir kod oluşturma.

JavaScript Nesneleri

Bir nesne, verileri anahtar-değer (key-value) çiftleri halinde saklar. Anahtarlar değerleri tanımlar. Değerler ilkel (primitive) türler, diğer nesneler veya fonksiyonlar olabilir.

Nesneleri iki şekilde oluşturabilirsiniz:

  1. Nesne Literalleri (Object Literals): Özellikleri tanımlamak için süslü parantez kullanın. Örnek: let user = {name: "Sourav", age: 23};

  2. Nesne Yapıcısı (Object Constructor): new Object() komutunu kullanın. Örnek: let user = new Object();

Nesneler değiştirilebilir (mutable) yapıdadır. Özellikleri istediğiniz zaman ekleyebilir, değiştirebilir veya silebilirsiniz. Bu, ilgili verileri bir arada gruplandırmanıza yardımcı olur.

Kaynak: https://dev.to/karthick_07/understanding-callback-functions-objects-and-synchronous-programming-a-comprehensive-guide-27lb