`truthy` ve `falsy` TypeScript'te

`truthy` ve `falsy` TypeScript'te

Bu makalede, TypeScript'teki truthy ve falsy kavramlarını açıklayacağız.

YouTube Video

truthy ve falsy TypeScript'te

TypeScript'teki truthy ve falsy kavramları, programın koşul ifadelerinde çok önemli bir rol oynar. Burada, bu kavramları detaylı olarak ve gerçekte nasıl kullanıldıklarını açıklayacağız. Ayrıca, truthy ve falsy değerlerinin nasıl işlendiğini anlamak için özel TypeScript kod örnekleri sunacağız.

Truthy ve Falsy nedir?

JavaScript ve TypeScript'te, herhangi bir değer bir koşul ifadesinde true (true) veya false (false) olarak değerlendirilir. Bu değerler mantıksal olarak truthy veya falsy olarak sınıflandırılır.

  • truthy, koşullu ifadelerde true olarak değerlendirilen değerlere atıfta bulunur.
  • falsy, koşullu ifadelerde false olarak değerlendirilen değerlere atıfta bulunur.

TypeScript'te, aşağıdaki değerler falsy olarak kabul edilir:.

  1. Sayı 0
  2. "" (boş string)

Diğer tüm değerler truthy olarak kabul edilir.

truthy ve falsy ile İlgili Özel Örnekler

 1// Examples of falsy values
 2console.log("0 is", Boolean(0) ? "truthy" : "falsy");
 3console.log('"" is', Boolean("") ? "truthy" : "falsy");
 4console.log("null is", Boolean(null) ? "truthy" : "falsy");
 5console.log("undefined is", Boolean(undefined) ? "truthy" : "falsy");
 6console.log("NaN is", Boolean(NaN) ? "truthy" : "falsy");
 7
 8// Examples of truthy values
 9console.log("1 is", Boolean(1) ? "truthy" : "falsy");
10console.log('"hello" is', Boolean("hello") ? "truthy" : "falsy");
11console.log("[] is", Boolean([]) ? "truthy" : "falsy");
12console.log('" " (space) is', Boolean(" ") ? "truthy" : "falsy");

truthy ve falsy Kullanarak Koşullar

Truthy ve falsy kavramları, genellikle koşullarda ve döngülerde kullanılır. Örneğin, if ifadelerinde veya while döngülerinde, bu değerleri doğrudan basit koşul değerlendirmeleri için kullanabilirsiniz.

 1// Checking if the length of the array is 0
 2let items: string[] = [];
 3
 4if (items.length) {
 5    console.log("The array is not empty");
 6} else {
 7    console.log("The array is empty");
 8}
 9
10// Checking if the input value is empty
11let input = "";
12
13if (input) {
14    console.log("Input has value");
15} else {
16    console.log("Input is empty"); // This will be executed
17}

falsy Değerlerini ?? (Boş Birleşim) ve || (Mantıksal VEYA) ile İşleme

TypeScript'te, falsy değerlerle çalışırken kullanışlı olan birkaç operatör bulunmaktadır. Özellikle, Nullish Coalescing Operatörü (??) ve mantıksal VEYA operatörü (||) sıkça kullanılır.

|| (Mantıksal VEYA)

Mantıksal VEYA operatörü, falsy değerleri varsayılan bir değerle değiştirmek için kullanılır. Ancak, tüm falsy değerler (sadece null veya undefined değil, aynı zamanda 0, "", vb.) hedef alınır.

1let username = "";
2let displayName = username || "Guest"; // Since username is empty, "Guest" is assigned
3
4console.log(displayName); // "Guest"

??(Nullish Coalescing)

Nullish Coalescing Operatörü, sadece null veya undefined değerlerine varsayılan bir değer uygular, diğer falsy değerleri (0 veya "" gibi) değiştirmeden bırakır.

1let username2 = "";
2let displayName2 = username2 ?? "Guest";
3// The empty string is retained
4// since username2 is not null or undefined
5
6console.log(displayName2); // ""

truthy ve falsy ile İlgili Tuzaklar

Truthy ve Falsy kavramlarını anlamaya çalışırken dikkat edilmesi gereken önemli bir nokta, istenmeyen değerlerin falsy olarak algılanabileceğidir. Örneğin, 0 ve boş dizeler "" geçerli değerlerdir, ancak koşullu ifadelerde falsy olarak kabul edilirler, bu da yanlış değerlendirmelere yol açabilir.

1let score = 0;
2
3if (score) {
4    console.log("You have a score!"); // This will not be executed
5} else {
6    console.log("No score available"); // This will be executed
7}

Bu gibi durumlarda, kesin karşılaştırma operatörlerini kullanmak, 0 ve false gibi değerleri doğru bir şekilde ayırt etmenizi sağlar.

1let score = 0;
2
3if (score === 0) {
4    console.log("Score is zero"); // Correctly evaluated
5}

falsy ve NaN ile ilgili tuzaklar

NaN, karşılaştırma operatörleri kullanıldığında kendisi de dahil hiçbir değere eşit olmadığından, özel bir işlem gerektirir.

1console.log("NaN === NaN:", NaN === NaN); // false

Bu nedenle, NaN'ı doğru bir şekilde algılamak için Number.isNaN() kullanmak daha güvenlidir.

 1// Bad Example
 2let value = parseInt("0");
 3if (!value) {
 4    console.log("Value is NaN"); // Incorrectly treats 0 as NaN
 5}
 6
 7// Good Example
 8let value2 = parseInt("hello");
 9if (Number.isNaN(value2)) {
10    console.log("Value is NaN"); // Correctly identifies NaN
11}

Bu nedenle, NaN kendisine bile eşit değildir, bu yüzden NaN ile yapılan karşılaştırmalar her zaman false döner. Bunun yerine Number.isNaN() kullanarak daha güvenilir kontroller yapabilirsiniz.

Sonuç

TypeScript'teki truthy ve falsy kavramları oldukça kullanışlıdır, ancak özellikle 0 ve boş dizeler gibi belirli değerlere dikkat etmeniz gerekir. Bu değerleri koşullu kontrollerde kullanırken, gevşek karşılaştırma (==) yerine kesin karşılaştırma (===) veya Nullish Coalescing Operatörü (??) kullanmak beklenmeyen davranışlardan kaçınmanıza yardımcı olabilir.

Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.

YouTube Video