JavaScript’te Truthy ve Falsy
eminbasbayan

İçindekiler
Bu yazıda neler var?
JavaScript dünyasına adım attığınızda, karşınıza sadece true ve false gibi açıkça belli olan mantıksal değerler çıkmaz. Birçok başka veri türü de JavaScript tarafından bir karar vermek üzere doğru (truthy) veya yanlış (falsy) gibi değerlendirilir. Bu kavramlar başlangıçta kafa karıştırıcı olabilir, ama bir kere anladığınızda kod yazmayı hem daha kolay hem daha okunabilir hale getirir.
Bu yazıda, truthy ve falsy kavramlarını en temel haliyle açıklayacak, hangi değerlerin nasıl davrandığını örneklerle gösterecek ve neden bu bilginin önemli olduğunu anlatacağız.
Değerler ve Mantıksal Kararlar
JavaScript’te koşullu ifadelerle çalışırken genellikle if yapısını kullanırız:
if (koşul) {
// bir şey yap
}Burada koşul kısmına yazılan her şey JavaScript tarafından "doğru mu, yanlış mı?" olarak değerlendirilir. Ancak bu değerlendirme her zaman true veya false gibi açıkça yazılmış Boolean (mantıksal) değerlerle yapılmaz. JavaScript, verilen değeri içsel olarak bir Boolean’a dönüştürür. Bu dönüşüm sonucunda değerin davranışı ya truthy (doğru gibi) ya da falsy (yanlış gibi) olur.
Falsy Olarak Kabul Edilen Değerler
JavaScript’te yalnızca altı adet değer falsy kabul edilir. Yani bunlar bir if bloğu içinde kontrol edildiğinde yanlış gibi davranır, yani if bloğu çalışmaz.
| Değer | Anlamı |
|---|---|
false | Zaten doğrudan yanlış |
0 | Sıfır, sayısal boşluk |
"" | Boş string, hiç karakter yok |
null | Hiçbir şeyi temsil etmiyor |
undefined | Tanımlanmamış değer |
NaN | Geçersiz sayı ("Not a Number") |
Örnek:
let kullanıcıAdı = "";
if (kullanıcıAdı) {
console.log("Hoş geldin!");
} else {
console.log("Kullanıcı adı girilmedi.");
}Bu kodda kullanıcı adı boş olduğu için if içi çalışmaz, else çalışır. Çünkü "" falsy bir değerdir.
Truthy Olarak Kabul Edilen Değerler
Falsy olanların dışında kalan tüm değerler truthy kabul edilir. Bu değerler bir if bloğunda kullanıldığında, JavaScript onları doğru gibi değerlendirir ve if bloğu çalışır.
Truthy kabul edilen bazı değer örnekleri:
"JavaScript"→ dolu bir yazı42→ sıfırdan farklı bir sayı-10→ eksi olsa bile sayı" "→ içinde sadece boşluk olsa bile string dolu[]→ boş bir dizi{}→ boş bir nesnefunction() {}→ fonksiyonlar
Örnek:
let yaş = 17;
if (yaş) {
console.log("Yaş girildi: " + yaş);
} else {
console.log("Yaş bilgisi yok.");
}Bu örnekte yaş sıfırdan farklı olduğu için (17), if bloğu çalışır. Çünkü 17 truthy’dir.
Neden Bu Kadar Önemli?
Program yazarken çok sık kullanıcıdan gelen verileri kontrol ederiz:
- Bir kullanıcı giriş yaptı mı?
- Formda boş alan kaldı mı?
- Sunucudan veri geldi mi?
İşte bu gibi durumlarda, if (değer) şeklinde yazmak çok pratik olur. Ekstra kıyaslama yapmadan sadece değerin truthy mi falsy mi olduğunu kontrol ederek karar verebiliriz.
Örnek:
let email = prompt("Email adresinizi girin:");
if (email) {
console.log("Teşekkürler! Giriş başarılı.");
} else {
console.log("Lütfen email adresinizi girin.");
}Kullanıcı bir şey girerse (örneğin "abc@mail.com"), if (email) truthy olur ve ilk mesaj gösterilir. Hiçbir şey yazmazsa, boş string girilir ve bu falsy olduğu için ikinci mesaj gösterilir.
Dikkat Edilmesi Gereken Bir Nokta
Bazı durumlar kafa karıştırabilir. Mesela " " yani sadece boşluk içeren bir string, truthy kabul edilir. Bu yüzden kullanıcı gerçekten bir şey yazdı mı diye kontrol etmek istiyorsanız, sadece if (input) değil, boşlukları da temizleyerek kontrol etmek daha doğru olur:
if (email.trim()) {
// Gerçekten bir şey yazılmış
}Özet
- JavaScript’te tüm değerler ya truthy ya da falsy kabul edilir.
- Bu bilgi sayesinde
ifgibi yapılar çok daha sade ve etkili kullanılabilir. - Falsy değerler:
false,0,"",null,undefined,NaN - Diğer her şey truthy’dir.






