
var vs let vs const: Küçük Bir Detay Değil, Davranış Meselesi
var, let ve const farkı çoğu zaman “ezber bilgi” gibi anlatılıyor. Ama mesele syntax değil, kodun nasıl davrandığı. Bu yazıda bu üç yapının gerçek farklarını ve neden önemli olduklarını basit ama net bir şekilde inceliyoruz.
JavaScript mülakatlarında klasik bir soru:
“var, let ve const farkı nedir?”
Genelde cevaplar da klasik:
var eski
let ve const yeni
const değişmez
Ama bu cevaplar konunun %20’si bile değil.
Asıl mesele şu:
🐜 kodunun nasıl davrandığını ne kadar anlıyorsun?
Basit düşünelim
Bir değişken tanımlıyorsun.
Aslında yaptığın şey şu:
“Bunu nerede kullanabilirim?” ve
“Bu ne kadar değişebilir?”
var, let, const farkı tam olarak burada başlıyor.
Scope meselesi (en kritik nokta)
Bu küçük örnek aslında her şeyi anlatıyor.
var→ “ben her yerdeyim”let/const→ “ben sadece buradayım”
🐜 var kontrolsüz
🐜 let/const sınırları belli
Büyük projelerde bug’ların çoğu burada çıkar.
Hoisting (ama gerçekten anlamak lazım)
İkisi de hoisted.
Ama davranışları farklı.
var→ “boş da olsa varım”let/const→ “tanımlanana kadar yokum”
Bu fark küçük değil.
TDZ (kimse doğru anlatmıyor)
Temporal Dead Zone aslında şunu diyor:
🐜 “tanımlamadan kullanma”
Bu bir kısıt değil.
Bu bir koruma mekanizması.
const gerçekten “değişmez” mi?
Bu çoğu kişinin yanlış bildiği yer.
🐜 const değeri değil
🐜 referansı sabitler
Asıl problem: var neden tehlikeli?
Bu “esneklik” değil.
Bu risk.
Aynı şeyi let ile yapamazsın.
Ve bu iyi bir şey.
Gerçek hayatta patlayan örnek
Bu farkı bilmiyorsan:
🐜 async kodda bug yazarsın
🐜 ve debug etmesi saatlerini alır
Peki ne yapıyoruz?
Kural basit:
default →
constdeğişecekse →
letvar→ hiç girme
Lazy Ant yorumu
Bu konu “hangi keyword” konusu değil.
Bu konu şu:
🐜 kodun ne kadar öngörülebilir?
İyi sistemler:
sürpriz çıkarmaz
sınırları bellidir
davranışı nettir
var bu kuralları bozar.
let ve const bu kuralları korur.
Sonuç
Bu fark küçük görünür.
Ama:
scope hataları
async bug’lar
beklenmeyen davranışlar
genelde buradan çıkar.
Kısacası:
🐜 mesele syntax değil
🐜 mesele kontrol
Ve iyi mühendislik, kontrol edebildiğin sistemler kurmaktır.



