Tüm blog yazıları

JavaScript’te Truthy ve Falsy

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 <S

eminbasbayan3 dk okuma
JavaScript’te Truthy ve Falsy

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:

jsx
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ğerAnlamı
falseZaten doğrudan yanlış
0Sıfır, sayısal boşluk
""Boş string, hiç karakter yok
nullHiçbir şeyi temsil etmiyor
undefinedTanımlanmamış değer
NaNGeçersiz sayı ("Not a Number")

Örnek:

jsx
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 nesne
  • function() {} → fonksiyonlar

Örnek:

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

jsx
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 "[email protected]"), 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:

jsx
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 if gibi yapılar çok daha sade ve etkili kullanılabilir.
  • Falsy değerler: false, 0, "", null, undefined, NaN
  • Diğer her şey truthy’dir.
JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele