CodeBlanks Logo Icon CodeBlanks

Nullish coalescing

JavaScript kursu · Başlangıç · Ders 90/133

?? 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

  1. 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.

  2. ?? 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);

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