Merhaba kod kahramanları! 🦸♀️🦸♂️
Bugün, JavaScript’in en havalı ama çoğu zaman gözden kaçan özelliklerinden biriyle tanışacağız: Template Literals.
Stringleri birleştirmek için artık + kullanmaya son! 😎 Template literals sayesinde kodunuz temiz, okunaklı, hatta eğlenceli hâle gelir. Hadi bu sihirli yolculuğa çıkalım! 🚀
1️⃣ Template Literals Nedir ve Neden Süper? 🦄
Eskiden böyle yapardık:
const isim = "Lara";
const meslek = "Arkeolog";
console.log("Merhaba, benim adım " + isim + " ve ben " + meslek + ".");
Görüyorsunuz, + ile stringleri birleştirmek hem uzun hem kafa karıştırıcı. 😵
Template literals ile:
console.log(`Merhaba, benim adım ${isim} ve ben ${meslek}.`);
🎉 Daha okunabilir, daha kısa ve göze daha hoş!
İpucu:
- Template literals backtick (`) kullanır, tırnak değil.
${}ile her türlü değişken veya ifadeyi string içinde kullanabilirsiniz.- Çok satırlı stringler de artık sorun değil:
console.log(`Merhaba ${isim}!
Sen bir ${meslek} ve JS dünyasında bir kahramansın!`);
💡 Bonus: Kodunuz artık şarkı sözü gibi okunabilir 🎶
2️⃣ Değişkenleri ve Hesaplamaları String İçinde Kullanma 💡
Template literals sadece değişkenleri değil, hesaplamaları da direkt string içinde yapmanıza izin verir.
const dogumYili = 1990;
const buYil = 2025;
console.log(`Benim yaşım ${buYil - dogumYili} ve kod yazmayı çok seviyorum!`);
Çıktı:
Benim yaşım 35 ve kod yazmayı çok seviyorum!
Neden bu harika?
- Hesaplamalar anında yapılır, ek değişken tanımlamak gerekmez.
- Kod daha kısa, daha temiz ve okunaklı.
💡 İpucu:
- Basit matematikten daha karmaşık fonksiyon çağrılarına kadar her şeyi
${}içinde yapabilirsiniz:
function gucHesapla(seviye) {
return seviye * 10;
}
console.log(`Karakterin gücü: ${gucHesapla(7)} ⭐`);
3️⃣ Eğlenceli Örnek: RPG Karakter Stats’larını Yıldızlarla Gösterme ⭐
Hadi biraz eğlenceli hâle getirelim! RPG karakterinizi düşünün: Enerji, Güç, Savunma… Bu stats’ları yıldızlarla göstereceğiz.
const karakter = {
isim: "Lara Croft",
enerji: 90,
guc: 80,
savunma: 70
};
for (let stat in karakter) {
if(stat !== "isim") { // isim, değerli ama yıldız istemiyoruz 😄
const yildiz = "*".repeat(Math.round(karakter[stat] / 10));
console.log(`${stat.toUpperCase()}: ${yildiz} (${karakter[stat]})`);
}
}
Çıktısı:
ENERJI: ********* (90)
GUC: ******** (80)
SAVUNMA: ******* (70)
Kod Açıklaması Eğlenceli Hâlde:
for…inile objenin her özelliğini tek tek alıyoruz.if(stat !== "isim")→ isim stat değil, sadece yıldız göstermek istemiyoruz."*".repeat(Math.round(karakter[stat] / 10))→ 90 için 9 yıldız, 80 için 8 yıldız… Görselleştirme harika değil mi? 😎${stat.toUpperCase()}→ stat adını büyük harflerle gösteriyoruz, daha cool gözüküyor.
💡 İpucu:
.repeat()sadece string ile çalışır. SayıyıMath.round()ile yuvarlamak, hatasız yıldız sayısı sağlar.- Mini oyunlarda veya dashboardlarda bu yöntemle hızlıca görsel geri bildirim sunabilirsiniz.
4️⃣ Karakterin Durumunu Koşullu Mesajlarla Gösterme 🎭
Template literals ile sadece değerleri değil, durum mesajlarını da dinamik hâle getirebilirsiniz.
const enerji = 90;
const guc = 40;
console.log(`Durum: ${enerji > 50 ? "Enerjik ⚡" : "Yorgun 😴"} ve Güç: ${guc > 50 ? "Güçlü 💪" : "Zayıf 🐢"}`);
Çıktı:
Durum: Enerjik ⚡ ve Güç: Zayıf 🐢
Eğlenceli Not:
- Ternary operator ile durumu anında kontrol edip mesaj gösterebilirsiniz.
- Kodunuz artık hem bilgilendirici, hem hikaye anlatan, hem de mizahi bir hâle geldi. 😆
💡 İpucu: Template literals ile emojiler eklemek, kullanıcıya görsel bir geri bildirim verir.
5️⃣ Daha Yaratıcı Örnek: Mini RPG Skor Tablosu 🌈
Birden fazla karakterin stats’larını yıldızlarla görselleştirelim ve renkli bir tablo gibi gösterelim (terminalde renk için kütüphane gerekebilir ama fikir böyle):
const takim = [
{isim: "Lara", enerji: 90, guc: 80, savunma: 70},
{isim: "Mario", enerji: 60, guc: 50, savunma: 80},
{isim: "Zelda", enerji: 100, guc: 90, savunma: 60}
];
takim.forEach(k => {
console.log(`\nKarakter: ${k.isim}`);
for (let stat in k) {
if(stat !== "isim") {
const yildiz = "*".repeat(Math.round(k[stat] / 10));
console.log(`${stat.toUpperCase()}: ${yildiz} (${k[stat]})`);
}
}
});
Çıktısı terminalde:
Karakter: Lara
ENERJI: ********* (90)
GUC: ******** (80)
SAVUNMA: ******* (70)
Karakter: Mario
ENERJI: ****** (60)
GUC: ***** (50)
SAVUNMA: ******** (80)
Karakter: Zelda
ENERJI: ********** (100)
GUC: ********* (90)
SAVUNMA: ****** (60)
💡 İpucu:
forEachile dizideki her karakteri kolayca döngüye alabilirsiniz.- Terminal veya web’de bu çıktıyı renklendirmek için CSS veya
chalkgibi kütüphaneler kullanabilirsiniz.
6️⃣ Özet ve Kod Kahramanlığı 🏁
- Template literals ile
${}sayesinde değişkenleri ve ifadeleri doğrudan string içinde kullanabilirsiniz. - Hesaplamaları, koşulları ve dinamik mesajları tek satırda gösterebilirsiniz.
.repeat()ile sayısal değerleri görsel hâle getirebilirsiniz.- Mini RPG karakterleri, skor tabloları ve durum mesajları ile JS’i eğlenceli hâle getirebilirsiniz.
💡 Küçük bir hayat dersi:
“Template literals, kodunuzu sadece çalıştırmakla kalmaz; ona ruh, mizah ve eğlence de katar!” ✨
