`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 ifadelerdetrue
olarak değerlendirilen değerlere atıfta bulunur.falsy
, koşullu ifadelerdefalse
olarak değerlendirilen değerlere atıfta bulunur.
TypeScript'te, aşağıdaki değerler falsy
olarak kabul edilir:.
- Sayı
0
""
(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.