JavaScript öğrenirken karşımıza üçlü bir ekip çıkar. Hani bazı dizilerde olur ya, biri eski ama tecrübeli, biri modern ve mantıklı, biri de aşırı ciddi… İşte onlar:
var→ Emekli ama hâlâ işe çağrılıyorlet→ Modern, düzenli, kurallıconst→ Söz verdiyse dönmez 😎
Bu yazıda sahne tamamen let’in. Çünkü let, JavaScript’te “daha az hata, daha çok huzur” demektir.
let Nedir? Neyi Çözer?
let, JavaScript’te değişken tanımlamak için kullanılır. Ama onu özel yapan şey sadece bu değil.
let age = 25;
age = 26;
Bu kod bize şunu söyler:
ageadında bir değişken var- Değeri değişebilir
- Ama her yerde değil 👀
İşte işin püf noktası burada başlıyor.
Asıl Güç: Block Scope (Süslü Parantez Kuralı)
let, block scope’ludur. Yani { } süslü parantezlerin içinde yaşar, oranın çocuğudur.
if (true) {
let message = "Merhaba Dünya";
console.log(message); // ✅ Çalışır
}
console.log(message); // ❌ Hata
Ne Oldu Burada?
messagesadeceifbloğunun içindeydi- Dışarı çıkınca JavaScript dedi ki:“Böyle biri yok”
Bu davranış, büyük projelerde yanlışlıkla değişken ezmeyi önler.
Aynı Kod var ile Olsaydı?
if (true) {
var message = "Merhaba Dünya";
}
console.log(message); // 😬 Çalışır
İşte JavaScript tarihindeki birçok “Bu değişken nereden geldi?” sorusunun sebebi bu.
Döngülerde let: Gizli Kahraman 🦸♂️
Döngüler ve let çok iyi anlaşır.
for (let i = 0; i < 3; i++) {
console.log(i);
}
console.log(i); // ❌ Hata
Neden Güzel?
isadece döngüye ait- Döngü bitti mi?
ide bitti - Ortalık tertipli, düzenli
var ile Aynı Örnek:
for (var i = 0; i < 3; i++) {
console.log(i);
}
console.log(i); // 😶 3
Kim çağırdı seni buraya i?
Aynı İsimli Değişken Tuzağına Son
let, aynı scope içinde aynı isimle ikinci kez tanımlamaya izin vermez.
let user = "Ahmet";
let user = "Mehmet"; // ❌ Hata
Bu bir nimet.
Çünkü JavaScript sana erkenden bağırır:
“Dur! Burada bir hata var.”
var Ne Yapardı?
var user = "Ahmet";
var user = "Mehmet"; // 😐 Sorun yok
Sorun yok… ama sonuçlar birazdan.
Hoisting Meselesi (Korkma, Anlatıyorum)
Evet, let de hoist edilir.
Ama kullanılmadan önce tanımlanmak zorundadır.
console.log(score);
let score = 10; // ❌ ReferenceError
JavaScript Ne Diyor?
“Seni tanıyorum ama sıranı bekle.”
Bu duruma Temporal Dead Zone (TDZ) denir.
Aslında JavaScript’in seni hatadan koruma şekli.
Pratik İpuçları (Gerçek Hayat Reçetesi)
1️⃣ İlk refleksin const olsun
const pi = 3.14;
Değişmesi gerekiyorsa:
let total = 0;
2️⃣ Global let kullanırken dikkat
let isLoggedIn = false;
Her yerden erişilecek değişkenler ileride baş ağrısı yapabilir.
3️⃣ Küçük scope = Az hata
Ne kadar dar alanda tanımlarsan, o kadar güvendesin.
Mini Özet (Akılda Kalsın)
letblock scope’ludur- Döngülerde hayat kurtarır
- Aynı isimli değişkenleri engeller
- Daha az sürpriz, daha çok kontrol
- Modern JavaScript’in olmazsa olmazı
Son Söz
let, JavaScript’te şunu temsil eder:
“Ben kontrolü seviyorum.”
Daha okunur kod,
Daha az bug,
Daha mutlu geliştirici.
Ve evet… gelecekteki sen bugünkü sana çay ısmarlamak isteyecek ☕😄
