CodeBlanks Logo Icon CodeBlanks

Nullish coalescing

?? operatörüyle varsayılan değer öğrenirsin.

Nullish coalescing nedir?

Nullish coalescing (??), sol taraf null veya undefined ise sağ tarafı döndürür; değilse sol tarafı korur. Varsayılan değer vermenin güvenli yoludur.

const userName: string | null = null;
const display = userName ?? "misafir";
console.log(display);  // misafir

0, false veya boş string gibi değerler korunur.

?? ile || farkı

Mantıksal veya (||), tüm falsy değerleri yakalar: 0, "", false, null, undefined. Nullish coalescing (??) ise yalnızca null ve undefined için varsayılan verir. Bu yüzden 0 veya boş string gibi geçerli değerleri korumak gerektiğinde ?? tercih edilir.

const n: number | null = 0;
console.log(n || 5);   // 5 (0 falsy)
console.log(n ?? 5);   // 0 (yalnızca null/undefined)

Uygulama Nullish coalescing ile isim göster

displayName(name: string | null | undefined): string fonksiyonunu yaz. name null veya undefined ise "Konuk" döndür; değilse name'i büyük harfe çevirip döndür. Üç çağrının sonucunu da yazdır.

Başlangıç kodu

index.ts
// displayName fonksiyonunu yaz
// parametre name: string, null veya undefined olabilir
// name null veya undefined ise "Konuk" döndür
// değilse name'i büyük harfe çevir ve döndür

Örnek çözüm

index.ts
function displayName(name: string | null | undefined): string {
  return (name ?? "Konuk").toUpperCase();
}

console.log(displayName("ada"));
console.log(displayName(null));
console.log(displayName(undefined));

Beklenen çıktı

ADA
KONUK
KONUK

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 n değeri 0 iken (n ?? 5) ifadesi ne döndürür?

index.ts
const n: number | null = 0;
console.log(n ?? 5);
  • 5 döndürür
  • 0 döndürür Doğru cevap
  • undefined döndürür
  • null döndürür

Açıklama: Nullish coalescing (??) yalnızca null veya undefined ise sağ tarafı alır. 0 falsy olsa da null/undefined olmadığı için sol taraf korunur.

2 Nullish coalescing işlecini tamamla

Soru
const display = userName ____ "misafir";
Cevap
const display = userName ?? "misafir";

Açıklama: Nullish coalescing ??, userName null veya undefined ise sağ tarafı alır. || tüm falsy değerleri yakaladığı için 0 veya boş string gibi değerleri değiştirir; bu yüzden burada yanlıştır.

3 Nullish coalescing parçaları

Kavram Anlamı
?? Yalnızca null/undefined için varsayılan
|| Tüm falsy değerleri yakalar
userName ?? "misafir" Varsayılan isim atar
0 ?? 5 0 döndürür

Başlangıç bölümündeki tüm dersler