Neler yeni

Seni de aramızda görmek istiyoruz! 🚀

Bilgi paylaştıkça çoğalır. Şu an misafir olarak buradasın ama sadece birkaç saniyeni ayırarak ücretsiz üye olabilir; binlerce içeriğe erişebilir, sorularını sorabilir ve topluluğumuzun bir parçası olabilirsin. Geliştirmek, öğrenmek ve paylaşmak için hemen aramıza katıl!

🤯 Junior'ları En Çok Zorlayan 7 Kavram: Referans, Closure, Async ve Dahası

Gökhan

Sahip
Yönetici
v02-junior-kavramlar.jpg

😵‍💫 "Anladım sandım ama anlamamışım." Her yazılımcının kariyerinde bu cümleyi kurduğu kavramlar vardır. İşte junior geliştiricileri en çok zorlayan 7 kavram, sade örneklerle. Sonunda mini bir sınav var! 🎯

1️⃣ Referans ve Değer​

En sinsi hata kaynağı. İlkel tipler kopyalanır, nesneler referansla paylaşılır.
JavaScript:
let a = { sayi: 1 };
let b = a;        // aynı nesneyi işaret eder
b.sayi = 99;
console.log(a.sayi); // 99 (!!) 😱

let x = 1;
let y = x;        // değer kopyalanır
y = 99;
console.log(x);   // 1 ✅
Sığ kopya için yayma operatörü, derin kopya için structuredClone(nesne) kullan.

2️⃣ Closure (Kapanış)​

Bir fonksiyonun, doğduğu ortamı hatırlaması. 🔒
JavaScript:
function sayacYap() {
  let sayi = 0;
  return function () {
    sayi++;
    return sayi;
  };
}
const say = sayacYap();
say(); // 1
say(); // 2  — "sayi" hâlâ yaşıyor!
Özel (private) değişken oluşturmada, olay dinleyicilerinde, throttle/debounce yazarken.

3️⃣ Özyineleme (Recursion)​

Kendini çağıran fonksiyon. İki şey şart: taban durumu ve küçülen problem. 🪆
Her çağrıda problemin küçüldüğünden ve taban durumuna ulaşıldığından emin ol. Aksi halde stack overflow!

4️⃣ Asenkron Programlama​

Kodun sırayla değil, "hazır olduğunda" çalışması. ⏱️
JavaScript:
// Yanlış: veri henüz gelmedi
const veri = fetch('/api');       // Promise döner!

// Doğru:
const cevap = await fetch('/api');
const veri2 = await cevap.json();

5️⃣ Kapsam (Scope) ve Hoisting​

var fonksiyon kapsamlı, let ve const blok kapsamlı. 🔦
Artık var kullanma. Varsayılan const, değişecekse let.

6️⃣ Bellek: Stack ve Heap​

Kod:
Stack                  Heap
-----------------      ---------------------
Hızlı erişim           Dinamik boyut
Otomatik temizlik      Çöp toplayıcı (GC)
İlkel tipler           Nesne, dizi, fonksiyon

7️⃣ Mutability (Değişebilirlik)​

Modern kod değiştirmez (immutable) yaklaşımı sever. 🧊
JavaScript:
// Mutasyon (riskli)
dizi.push(5);

// Değiştirmeyen (güvenli)
const yeni = dizi.concat(5);

🧪 Mini Sınav​

Aşağıdaki kod ne yazdırır?
JavaScript:
const liste = [1, 2, 3];
const kopya = liste;
kopya.push(4);
console.log(liste.length);
4 — çünkü kopya aynı diziyi işaret ediyor, kopyası değil! Gerçek kopya için yayma operatörü gerekir.

📚 Öğrenme Sırası Önerisi​

  • Önce: Değer/referans, kapsam
  • Sonra: Closure, asenkron
  • En son: Bellek modeli, immutability

💬 Sen hangi kavramı geç anladın? Yorumlarda paylaş — belki birinin kafasındaki soru işaretini kaldırırsın! 🚀
 

Ekli dosyalar

  • banner.jpg
    banner.jpg
    51.4 KB · Görüntüleme: 0
Son düzenleme:

Konuyu görüntüleyenler

Üst