“Değişmeyen Değişkenler” Efsanesi, Gerçekler ve Küçük İhanetler
JavaScript öğrenirken insanın başına gelen klasik olay:
“Hocam ben
constyazdım ama bu array hâlâ değişiyor…”
“JavaScript bana mı yalan söylüyor?”
Hayır.
JavaScript yalan söylemez,
sadece ince ince ters köşe yapar 😄
Bu yazıda:
constgerçekte neyi kilitler?- Array’ler neden hâlâ değişebiliyor?
- Ne yapabilirsin, ne yapamazsın?
- Profesyoneller neden sürekli
constkullanıyor? - Gerçek projelerde işine yarayacak pratik ipuçları
hepsini bol örnekli, bol benzetmeli anlatıyoruz.
📦 1. const Ne Demekti? (Kısa Ama Hayati Hatırlatma)
Başlayalım en temel yerden.
const age = 25;
age = 30;
Bu kodu yazarsan JavaScript sana şunu der:
❌ TypeError: Assignment to constant variable
Yani:
const→ yeniden atama yasak- Değer = tek parça (number, string, boolean)
Buraya kadar her şey net.
🤯 2. Aynı const, Aynı JavaScript… Ama Array Değişiyor?!
Şimdi sahneye array çıksın:
const numbers = [1, 2, 3];
numbers.push(4);
console.log(numbers);
Çıktı:
[1, 2, 3, 4]
Ve beynimiz:
“???
Hani değişmiyordu?”
İşte burası JavaScript’in felsefi tarafı.
🧩 3. Asıl Gerçek: const Neyi Kilitler, Neyi Kilitlemez?
Altın cümle geliyor, ezberle:
const, değişkenin REFERANSINI kilitler.
İçeriğini değil.
🔗 Referans Ne Demek?
JavaScript’te array’ler kutunun kendisi değil,
kutunun adresidir.
Yani:
const numbers = [1, 2, 3];
Aslında olan şey şu:
numbers → 📦 [1, 2, 3]
numbers= adres[1, 2, 3]= içindeki eşyalar
🧳 Benzetme Zamanı (JavaScript Seviyor Bunu)
const numbers→ valiz- Array elemanları → valizin içindeki eşyalar
numbers.push(4);
➡ Valizi değiştirmiyorsun
➡ İçine bir çorap daha atıyorsun 🧦
➡ JavaScript: “Sorun yok.”
Ama şunu yaparsan?
numbers = [10, 20, 30];
➡ Eski valizi çöpe atıp
➡ Yeni bir valiz almaya çalışıyorsun
JavaScript:
“Hop! Orada dur.
constdedik.”
🚫 4. const Array ile Neleri ASLA Yapamazsın?
❌ 1. Yeniden Atama
const fruits = ["apple", "banana"];
fruits = ["orange", "grape"];
Hata verir.
Çünkü:
- Referans değişiyor
- JavaScript bunu sevmiyor
❌ 2. Başka Bir Değişkene Taşıyıp Kaçmak
const a = [1, 2, 3];
a = [];
Hayır.
Kaçış yok 😄
✅ 5. Peki const Array ile NELER SERBEST?
➕ Eleman eklemek
const fruits = ["apple", "banana"];
fruits.push("orange");
📌 push → sona ekler
📌 Referans aynı, içerik değişti
➖ Eleman çıkarmak
fruits.pop();
📌 Son elemanı çıkarır
📌 Array hâlâ aynı array
✏️ Eleman değiştirmek
fruits[0] = "cherry";
📌 Index üzerinden oynama serbest
🔁 Array metotları
fruits.splice(1, 1);
📌 İstediğin yeri kes-biç
📌 JavaScript ses çıkarmaz
🧠 6. “Madem Değişiyor, Neden let Değil de const?”
Çok güzel soru.
Cevap: GÜVENLİK 🔐
Şu kodu düşün:
const users = [];
function addUser(name) {
users.push(name);
}
Burada:
usershep aynı liste- Yanlışlıkla
users = nullyazamazsın - Kod okuyan biri bilir ki: “Bu array hep var olacak.”
Ekip projelerinde bu hayat kurtarır.
🧊 7. “Ben HİÇ DeğİŞMESİN İstiyorum” Diyorsan
O zaman sahneye Object.freeze girer.
const numbers = Object.freeze([1, 2, 3]);
numbers.push(4);
numbers[0] = 99;
Sonuç:
- Strict mode’da → ❌ hata
- Normalde → sessizce başarısız
📌 Freeze = buzdolabı poşeti
📌 Açmaya çalışırsın ama açılmaz 🧊
⚠️ Ama Dikkat: Freeze Sığdır!
const data = Object.freeze([
{ name: "Ali" }
]);
data[0].name = "Veli";
❗ Bu çalışır!
Çünkü:
- Freeze sadece üst katmanı
- İçteki object hâlâ serbest
Bu yüzden:
“Tam koruma istiyorsan derin freeze gerekir.”
(Orası advanced level, oraya şimdilik girmiyoruz 😄)
🧪 8. Gerçek Hayattan Bir Proje Örneği
const cart = [];
function addToCart(product) {
cart.push(product);
}
function clearCart() {
cart.length = 0;
}
Neden güzel?
carthep aynı referans- Uygulama çökmez
- State yönetimi kolaylaşır
Modern framework’ler (React, Vue) bu mantığı çok sever.
🎯 9. Profesyonel İpucu Köşesi 💡
✔ Array tanımlıyorsan → önce const düşün
✔ Yeniden atama gerekmiyorsa → let kullanma
✔ “Bu değişken hep var olacak” diyorsan → const
✔ “Bunu sıfırlayacağım” diyorsan → yöntem değiştir, referans değil
🧠 10. Kısa Ama Efsane Özet
const= referans sabit- Array içi = oynanabilir
- Yeniden atama = yasak
- Güvenli, temiz, profesyonel kod
🚀 Son Söz
JavaScript’te const şunu der:
“Benim gösterdiğim adres değişmeyecek.
Ama içerde ne yapacağın seni bağlar.”
Bunu anladığında:
- Bug’ların azalır
- Kodun okunur
- Senior’lar sana saygıyla bakar 😄

