JavaScript bazen sana göz kırpar ve der ki:
“Bu teknik olarak false değil ama ben yine de bir düşüneyim…” 🤨
İşte bu yazı, JavaScript’in true / false konusundaki psikolojisini anlaman için yazıldı.
Bu içerikte:
- Truthy & Falsy mantığını temelden zirveye çıkıyoruz
- Her başlıkta bol bol kod görüyoruz
- Kodları satır satır, insan diliyle açıklıyoruz
- Gerçek hayatta bug çıkaran tuzakları tek tek temizliyoruz 🧹
Hazırsan başlıyoruz… kahveni al ☕🚀
🧠 Truthy & Falsy Nedir? (Gerçekten İnsan Diliyle)
JavaScript’te her şey true ya da false değildir. Ama JavaScript çoğu zaman şunu ister:
“Bana doğru mu, değil mi hissini ver.”
İşte bu noktada truthy / falsy devreye girer.
📌 Tanım:
- Falsy → false gibi davranan değerler
- Truthy → true gibi davranan değerler
Önemli nokta 👇
Bir değer boolean olmasa bile, if içinde boolean’a dönüştürülür.
if (“hello”) {
console.log(“Çalıştı”);
}
🧠 Açıklama:
"hello"boolean değil- Ama JavaScript onu true gibi yorumladı
❌ Falsy Değerler (Altın Liste – EZBERLE)
JavaScript’te SADECE 8 TANE falsy değer vardır. Nokta.
false
0
-0
0n
“”
null
undefined
NaN
🧠 Akılda kalıcı kural:
Bunların dışında kalan HER ŞEY truthy’dir.
🔬 Mini Test
if (“”) {
console.log(“Beni göremezsin”);
} else {
console.log(“Çünkü boş string”);
}
📌 Açıklama:
""→ boş string- Boş string → falsy
- Bu yüzden
elseçalıştı
✅ Truthy Değerler (Şaşırtan Gerçekler)
Falsy listesinde olmayan her şey truthy’dir. Evet… her şey 😎
🤯 En Çok Şaşırtan Truthy Örnekler
if ([]) console.log(“Boş array ama true”);
if ({}) console.log(“Boş obje ama true”);
if (” “) console.log(“Boşluk var ama true”);
if (“0”) console.log(“String sıfır ama true”);
if (“false”) console.log(“Yazı olarak false ama true”);
🧠 Açıklama:
- Array var → truthy
- Obje var → truthy
- İçinde karakter var → truthy
JavaScript diyor ki:
“Boş olabilir ama var.”
⚠️ En Yaygın Tuzaklar (Bug Üreten Bölge)
🚨 Tuzak 1: Boş Array Kontrolü
const items = [];
if (items) {
console.log(“Liste var”);
}
❌ Bu her zaman çalışır.
🧠 Neden?
- Çünkü
[]→ truthy
✅ Doğru kontrol:
if (items.length > 0) {
console.log(“Gerçekten dolu”);
}
🚨 Tuzak 2: Sayı = 0 Problemi
let score = 0;
if (score) {
console.log(“Skor var”);
}
❌ Çalışmaz.
🧠 Çünkü:
0→ falsy
✅ Güvenli kontrol:
if (score !== null && score !== undefined) {
console.log(“Skor tanımlı”);
}
🚨 Tuzak 3: Varsayılan Değer Atama (||)
const username = inputName || “Guest”;
🧠 Ne oluyor?
inputNamefalsy ise → “Guest”
Ama:
const score = userScore || 10;
userScore = 0 ise? 👉 Sonuç 10 😬
✅ Modern Çözüm: Nullish Coalescing
const score = userScore ?? 10;
🧠 ?? sadece şunlara bakar:
nullundefined
0 ile kavga etmez ❤️
🧪 Boolean’a Zorlama (Kontrolü Ele Al)
🔹 Boolean() Fonksiyonu
Boolean(0); // false
Boolean(“JS”); // true
Boolean([]); // true
Boolean(null); // false
🧠 Okunabilir ama biraz uzun.
🔹 !! Operatörü (JS Ninja Tekniği 🥷)
!!”hello” // true
!!0 // false
!![] // true
🧠 Açıklama:
- İlk
!→ tersine çevirir - İkinci
!→ tekrar tersine çevirir - Sonuç → net boolean
🧠 Gerçek Hayat Kullanımları
✔️ Form Kontrolleri
if (email && password) {
submitForm();
}
📌 İki değer de truthy ise form gider.
✔️ Koşullu Render Mantığı
isLoggedIn && showDashboard();
🧠 Kısa, net, temiz.
🚦 En Sık Yapılan Hatalar
❌ 0 değerini yok saymak ❌ Boş array’i boş sanmak ❌ || ile her şeye varsayılan vermek ❌ Truthy / Falsy mantığını ezbere kullanmak
🏆 Altın Kurallar (Kaydetmelik)
✨ Falsy listesini ezberle ✨ Kritik kontrollerde açık ol ✨ || yerine gerekirse ?? kullan ✨ Okunabilir kod > kısa kod
💬 Son Söz
Truthy & Falsy, JavaScript’in en küçük ama en tehlikeli konularından biridir.
Anladığında:
- Bug’lar azalır
- Koşullar netleşir
- JavaScript sana daha az sürpriz yapar 😌

