Nullish coalescing
?? operatörü ile null ve undefined için varsayılan değer vermeyi öğrenirsin.
Nullish coalescing
?? işleci (nullish coalescing) yalnızca sol taraf null ya da undefined ise sağ tarafı döndürür. Bu, || işlecinden farklıdır; çünkü ?? 0, "" veya false gibi geçerli falsy değerleri değiştirmez.
Örnek: const count = userCount ?? 0;. Burada userCount null ise count 0 olur; ama userCount 0 ise count yine 0 kalır. Bu, sayı ya da boş dize gibi değerlerin varsayılanla değiştirilmesini istemediğin durumlar için idealdir.
?? ve || arasındaki fark
?? ve || arasındaki farkı bilmek önemlidir. || tüm falsy değerleri değiştirir: 0 || 5 sonucu 5'tir. Oysa ?? yalnızca null ve undefined için değiştirir: 0 ?? 5 sonucu 0'dır.
Bu yüzden sayı, dize veya boolean değişkenlerde varsayılan istiyorsan ?? tercih et. Örneğin const discount = cartDiscount ?? 0; ifadesi cartDiscount 0 ise 0 korur; || kullanırsan 0 kaybolurdu. ??, verinin gerçekten eksik olduğu durumları ayırt eder.
Uygulama ?? ile varsayılan değer
count değişkenini null yap. displayCount değişkenini count ?? 0 yap. displayCount'u yazdır.
Örnek çözümü göster
const count = null;
const displayCount = count ?? 0;
console.log(displayCount);
Uygulama ?? ve || farkını göster
value değişkenini 0 yap. withOr değişkenini value || 100 yap. withNullish değişkenini value ?? 100 yap. Her ikisini de yazdır.
Örnek çözümü göster
const value = 0;
const withOr = value || 100;
const withNullish = value ?? 100;
console.log(withOr);
console.log(withNullish);
Kendini test et
-
0 ?? 50 ifadesinin sonucu nedir?
0 ?? 50- null
- 50
- 0
- undefined
Cevabı göster
0 — Doğru. ?? işleci 0'ı geçerli sayar ve 0'ı döndürür.
-
?? ile varsayılan ver
const userCount = null; const count = userCount ____ 0; console.log(count);Cevabı göster
const userCount = null; const count = userCount ?? 0; console.log(count);