Merhaba💖
Bugün JavaScript evreninde “Ben object değilim, ben Map’im” diye gezen karizmatik bir veri yapısıyla derin, samimi ve bol kahkahalı bir tanışma yaşayacağız.
Bu yazı kısa kısa geçip gitmeyecek.
Bu yazı:
- bol örnekli 🧪
- gerçek hayattan benzetmeli 🧠
- pratik ipuçlarıyla dolu 🛠️
- “Hah işte şimdi oturdu!” dedirten 💡
Bir yazı olacak.
Hazırsan… Map’i sahneye alıyoruz 🎤
🤔 JavaScript Map Nedir? (Object’ten Farkı Ne?)
JavaScript’te çoğu kişi veriyi saklamak için otomatik olarak Object kullanır.
Ama Map diyor ki:
“Ben bu işi biraz daha premium yapıyorum.” 😌
Map, anahtar–değer (key–value) mantığıyla çalışan ama bunu daha net, daha esnek ve daha performanslı yapan bir veri yapısıdır.
🔑 En büyük fark ne?
Map’te key olarak HER ŞEYİ kullanabilirsin:
- string
- number
- boolean
- object
- array
- function
Object’te ise genelde işler string key’lere sıkışır.
🛠️ Map Nasıl Oluşturulur?
Başlangıç çok sade:
const myMap = new Map();
Bu satır ne yapıyor?
- Yeni bir Map oluşturuyor
- İçinde şimdilik hiçbir şey yok
- Tertemiz bir defter gibi 📓
İstersen başlangıçta veriyle de oluşturabilirsin:
const userMap = new Map([
["name", "Cansu"],
["age", 25],
["isDeveloper", true]
]);
📌 Burada her satır bir [key, value] çifti.
Map diyor ki: “Düzenli gelin lütfen.” 😌
➕ Veri Ekleme: set()
Map’in en sevdiği kelime: set 💅
myMap.set("city", "İstanbul");
myMap.set(34, "Plaka");
myMap.set(true, "Evet, bu da key olabilir");
Bu kod ne anlatıyor?
set(key, value)→ veri ekler- Key eşsizdir (aynı key tekrar eklenirse üstüne yazar)
- Veri tipi umursamaz, Map özgür ruhludur 🕊️
🔥 İpucu:
myMap.set("a", 1).set("b", 2).set("c", 3);
Evet… zincirleme kullanabilirsin 😎
🔍 Veri Okuma: get()
Ne eklediysek geri almak isteriz. Map kırmaz 💖
myMap.get("city"); // "İstanbul"
myMap.get(34); // "Plaka"
Bulamazsa?
myMap.get("country"); // undefined
Trip atmaz, hata fırlatmaz.
Sessizce “yok” der 😌
❓ Key Var mı? has()
Bir key var mı yok mu öğrenmek istiyorsan:
myMap.has("city"); // true
myMap.has("country"); // false
🧠 Gerçek hayat benzetmesi:
“Bu dolapta çikolata var mı?” 🍫
❌ Veri Silme: delete()
Hayatından çıkardığın şeyler gibi…
Map’ten de çıkarabilirsin 😌
myMap.delete(34);
Bulursa siler, bulamazsa sessizce geçer.
Drama yok.
🧹 Her Şeyi Silmek: clear()
“Yeni bir başlangıç istiyorum” diyenlere:
myMap.clear();
Map tertemiz.
Yeni sayfa, yeni umutlar ✨
📏 Map’in Boyutu: size
Object’te yaşanan o meşhur çile:
Object.keys(obj).length;
Map buna bakıp sadece şunu der:
myMap.size;
Bu kadar.
Minimalizm ✨
🔁 Map Üzerinde Dolaşmak (Iteration)
forEach ile:
myMap.forEach((value, key) => {
console.log(key, value);
});
📌 Sıra bozulmaz.
📌 Eklediğin sırayla dolaşır.
📌 Kontrol sende 😎
for…of ile (En Havalı Yöntem)
for (const [key, value] of myMap) {
console.log(key, value);
}
Bu yapı Map’le doğuştan uyumludur.
Okunur, temiz, şık 💅
🧠 Object Key’leri Map’te Kullanmak (İşte Olay Burada)
const user = { id: 1 };
const settings = new Map();
settings.set(user, "Admin");
👉 Aynı object = aynı key
👉 Object’te bunu yapamazsın
Bu özellik Map’i efsane yapar 💥
🆚 Map vs Object (Gerçekçi Karşılaştırma)
| Özellik | Map | Object |
|---|---|---|
| Key tipi | Her şey | String ağırlıklı |
| Sıra | Korur | Garanti değil |
| Boyut | .size | Uğraştırır |
| Iteration | Çok temiz | Ekstra işler |
| Performans | 🔥 | 🤷♀️ |
🎯 Ne Zaman Map Kullanmalısın?
✔ Key olarak object / function kullanacaksan
✔ Sıra önemliyse
✔ Çok ekleme–silme yapıyorsan
✔ Kodunun daha okunur olmasını istiyorsan
👉 Map doğru seçimdir💖
💡 Mini Pratik İpuçları
✨ Map JSON’a direkt çevrilmez (önce array yap)
✨ Map referansları sever, primitive’leri net ister
✨ new Map(existingMap) ile kopya alabilirsin
❤️ Sonuç: Map = JavaScript’te Seviye Atlama
Map kullanmaya başladığında şunu hissedeceksin:
“Ben artık rastgele kod yazmıyorum… bilinçliyim.” 😎
Daha temiz kod
Daha az bug
Daha çok huzur 🌿

