JavaScript'te bir değer saklamak için 3 anahtar kelime var. Hepsinin amacı "isim ver, içine değer koy" olsa da davranışları çok farklı.
const — varsayılan tercih
Değer atandıktan sonra yeniden atanamaz:
const PI = 3.14159;
PI = 3; // ❌ TypeError: Assignment to constant variableAma içerik değişebilir (objeler/diziler için):
const user = { name: "Furkan" };
user.name = "Ali"; // ✅ çalışır — referans aynı, içerik değişti
user = {}; // ❌ referansı değiştiremezsinlet — değişecek değerler için
Yeniden atanabilir ama block scope'tadır (sadece tanımlandığı {} içinde
yaşar).
let count = 0;
count = count + 1; // ✅
if (true) {
let inside = 1;
}
console.log(inside); // ❌ ReferenceErrorvar — kullanma
ES6 öncesinden kalma, function scope'lu eski sözdizimi. Hoisting davranışı beklenmedik buglar üretir:
console.log(x); // undefined (hata değil!)
var x = 5;Modern kodda var kullanmak için bir sebep yok.
Karar ağacı
Değer hiç değişmeyecek mi? → const
Değişecek mi? → let
↑ neredeyse her zaman bu ikisiİsimlendirme kuralları
- camelCase:
userName,totalPrice - Sabitler için UPPER_SNAKE_CASE:
MAX_RETRY_COUNT - Sayı ile başlayamaz:
1user❌ - Türkçe karakter teknik olarak çalışır ama kullanma:
kullanıcıAdı❌
💡Pratik
Yeni bir değişken tanımlarken refleks olarak const yaz. Ancak gerçekten
değişmesi gerektiğinde let'e geç.