JavaScript’te Falsy ve Truthy Kavramları

Yasin Atılkan
Codimis
Published in
3 min readOct 22, 2021

--

Merhabalar, kendi blog sitemde daha önceden yayınladığım içeriği üzerinde bazı değişiklikler de yaparak Codimis platformu takipçileri ile paylaşmak amacıyla burada yayınlıyorum. Falsy ve truthy konusu temel seviyede olsa da JavaScript geliştiricilerinin aldığı beklenmedik çıktıları doğru yorumlaması ya da okuduğu kodu hızlı bir şekilde anlaması için konuya hakim olması önemlidir.

Falsy ve Truthy Kavramları Nedir?

Falsy, adının da bizlere çağrıştırdığı gibi JavaScript’te boolean false olarak değerlendirilen ifade ya da değerlerdir. Falsy ifade ya da değerler şunlardır;

  • Boolean false.
  • Boş string değeri: ‘’.
  • undefined bir değişken.
  • null bir değişken.
  • NaN(Not a number) değerini almış bir değişken.
  • Nümerik sıfır ya da 0 sonucunu veren bir işleme uğramış değer.

Truthy ise falsy kapsamında olmayan her türden değer ya da ifadedir. Konuyu pekiştirmek için aşağıdaki uygulamayı inceleyelim.

Uygulama

İlk olarak, içerisinde bir ternary expression ile falsy ya da truthy testini yapacak olan fonksiyonu yazalım. Boolean false ise konsolda falsy çıktısı değil ise truthy çıktısı alınır. Burada, ? ifadesinden önce val değişkeni ile karşılaştırma operatörü (==) kullanılmadığına ve ifadelerin false ya da true bağlamında değerlendirilmeye çalışıldığına dikkat edilmelidir.

Falsy ve Truthy Test Fonksiyonu

Aşağıda falsy olarak değerlendirilen ve konsolda falsy çıktısını veren testler gösterilmiştir. Son testteki matematiksel ifadenin sonucu nümerik 0 (Number tipinde 0 değeri) olduğu için falsy olarak değerlendirilmiştir.

Falsy Olarak Değerlendirilen Testler

Aşağıda truthy olarak değerlendirilen testler bulunmaktadır. Falsy olarak değerlendirilmesi beklenen değerlerin nesne (object) tipinde tanımlandığında truthy çıktıklarının alındığına, ayrıca “0” ifadesinin string tipinde olup, nümerik olmadığına ve bu nedenle truthy olarak değerlendiğine dikkat edilmelidir.

Truthy Olarak Değerlendirilen Testler

Yukarıdaki uygulamada, test(“0”) ve test([]) testleri ile truthy çıktıları alınsa da aşağıdaki uygulama ile görüleceği üzere [] değeri karşılaştırma operatörü (==) ile birlikte kullanıldığında JavaScript’te false olarak değerlendirilecek, ayrıca “0” string tipi olan değer ise yine karşılaştırma operatöründe nümerik 0 değerine dönüştürülüp, false olarak değerlendirilecektir.

“0” ve [] Değerleri İçin Dikkat Edilmesi Gereken Durum

Uygulamanın ilk paragrafında karşılaştırma operatörünün kullanılmadığına dikkat edilmesi gerektiğini belirtmiştim. Falsy listesinde belirtilen undefined, null ve NaN değerlerine sahip değişkenlerin, son örnekteki gibi karşılaştırma operatörü (==) ile test edilmesi senaryosunda boolean false değerini almadıkları aşağıdaki uygulamadan anlaşılabilir. Uygulamada, 3 değişkenin false değerini almadıkları için if bloğu şartlarının sağlanmadıkları ve bu nedenle konsola hiçbir şey yazılmadığı gözlenir.

Undefined, Null ve NaN Örnekleri

Konu ile ilgili faydalandığım veya yararlı bulduğum kaynakları aşağıda belirterek içeriği tamamlıyorum. İyi günler dilerim.

Kaynaklar

Kod görüntülerini oluşturmak için kullanılan site: https://carbon.now.sh/

--

--