Merhaba, bu yazımda sizlere JavaScript’te falsy ve truthy kavramlarından bahsedeceğim. Konu JavaScript başlığı altında temel bir seviyede olsa da bir geliştiricinin geliştirdiği uygulamasından beklediği çıktıları alması ya da okuduğu kodu anlaması açısından geliştiricinin bu konuya hakim olması önemlidir.
Falsy ve Truthy
Falsy adının da çağrıştırdığı üzere, 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 0 ya da 0 sonucunu veren bir işleme uğramış değer
Kısaca truthy, falsy kapsamında yer almayan her türlü değer ya da ifadedir.
Uygulama
İlk olarak, içerisinde bir ternary expression ile falsy ya da truthy testimizi yapacak olan fonksiyonu yazalım. Değer boolean false ise falsy çıktısı değil ise truthy çıktısı alınacaktır.
const test = (val) => { return val ? console.log('truthy') : console.log('falsy') }
Konuyu pekiştirmek için gerekli olan testlerimizi gerçekleştirelim.
test(false) //falsy test('') //falsy let my_undefined test(my_undefined) //falsy let my_null = null test(my_null) // falsy let my_NaN = Number("arda") test(Number(my_NaN)) // falsy test(0) // falsy test(10-6-4) // falsy
Aşağıda ise truthy çıktısını alacağımız bazı testleri gerçekleştirelim. Falsy listesinde belirttiğimiz kavramların object içerisinde test edilmesi ile truthy çıktılarının alındığına, ayrıca “0” ifadesinin string tipinde olup, nümerik olmadığına ve bu nedenle truthy değerlendirildiğine dikkat etmeliyiz.
test("0") // truthy test(new Number(0)) // truthy test(new Boolean(false)) // truthy test([]) // truthy test(100) // truthy test("Atakan") // truthy const person = { name: "Arda", age:17 } test(person) // truthy test(person.age) // truthy
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.
if("0" == false){ // false == false true sonucunu verir. console.log(`"0" false olarak değerlendirildi.`) } if([] == false){ // false == false true sonucunu verir. console.log(`[] false olarak değerlendirildi.`) } /* Çıktı: "0" false olarak değerlendirildi. [] false olarak değerlendirildi. */
Daha detaylı bilgileri kaynaklar kısmındaki paylaşımlarda bulabilirsiniz. Umarım konu hakkında yazdıklarım sizlere faydalı olur. Benimle yasinatilgan60@gmail.com adresi üzerinden iletişime geçebilirsiniz. İyi günler.
Kaynaklar
https://howtodoinjava.com/typescript/truthy-and-falsy/
https://www.geeksforgeeks.org/why-0-is-equal-to-false-in-javascript/
Comments are closed.