🧠 JavaScript’te const Array Kullanımı

🧠 JavaScript’te const Array Kullanımı

“Değişmeyen Değişkenler” Efsanesi, Gerçekler ve Küçük İhanetler

JavaScript öğrenirken insanın başına gelen klasik olay:

“Hocam ben const yazdı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:

  • const gerçekte neyi kilitler?
  • Array’ler neden hâlâ değişebiliyor?
  • Ne yapabilirsin, ne yapamazsın?
  • Profesyoneller neden sürekli const kullanı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:

  • constyeniden 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 numbersvaliz
  • 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. const dedik.”


🚫 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:

  • users hep aynı liste
  • Yanlışlıkla users = null yazamazsı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?

  • cart hep 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 😄

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir