JavaScript’te “Nullish Coalescing” Operatörü (??)

Bu yazımızda, JavaScript’te null veya undefined kontrolü için kullanılan “nullish coalescing” operatörü (??) üzerinde duracağız.

“Nullish Coalescing” Operatörü (??)

Kelime anlamı olarak “nullish”, “null benzeri” anlamına gelirken, “coalescing” ise “birleşme” veya “bir araya gelme” anlamına gelmektedir. JavaScript’te çift soru işareti (??) ile gösterilen bu operatör, iki değer arasında seçim yapmanızı sağlar.

Bu operatör, eğer ilk değer null ya da undefined ise ikinci değeri; aksi takdirde, ilk değeri döndürür. Söz dizimi aşağıdaki gibidir:

degisken ?? varsayilanDeger

Eğer degisken null ya da undefined ise, bu operatör varsayilanDegeri döndürür. Eğer degisken null ya da undefined dışında bir değere sahipse, bu değeri döndürür. Yani kontolünü yaptığımız değer “null” veya “undefined” ise, operatörün sağ tarafındaki değer döndürülür. Eğer değilse, sol tarafındaki değer döndürülür.

Bu yönüyle ?? operatörü, özellikle belirli bir değerin atanmamış olduğu durumlarda varsayılan değer belirlemek için yararlıdır. Aşağıdaki örneği inceleyiniz:

function hesaplaToplam(fiyat, kargo, indirim) {
  fiyat = fiyat ?? 0;
  kargo = kargo ?? 0;
  indirim = indirim ?? 0;

  return fiyat + kargo - indirim;
}

let toplamFiyat = hesaplaToplam(100, 20);
console.log(toplamFiyat); // 120

Yukarıdaki örnekte, hesaplaToplam adlı bir fonksiyon oluşturduk. Bu fonksiyonu, üç parametre alacak şekilde ayarladık: fiyat, kargo ve indirim. Eğer bu değerlerden herhangi biri fonksiyona geçirilmezse (yani null ya da undefined ise), nullish coalescing operatörü (??) kullanarak bu değerlere 0 atıyoruz. Sonrasında, bu değerleri toplayarak ve indirimi çıkartarak toplam fiyatı hesaplıyoruz.

Fonksiyonu çağırırken, sadece fiyat ve kargo değerlerini geçiriyoruz (100 ve 20). Bu durumda, indirim parametresi için değer geçirilmediği için ?? operatörü sayesinde indirim değeri 0 olarak belirleniyor.

Sonuç olarak, toplamFiyat değişkeni 100 (fiyat) + 20 (kargo) – 0 (indirim) = 120 değerini alır ve konsolda bu değeri yazdırırız.

Neden “Nullish Coalescing” Kullanılıyor?

“Nullish coalescing” operatörünün neden sadece “null” ve “undefined” değerlerini kontrol ettiğini anlamak için, bu iki değerin JavaScript’te taşıdığı özel anlama odaklanmak gerekir.

“Null”, bir değişkenin bilinçli olarak bir değere sahip olmadığını belirtir. Bir değişkenin değeri bilinmiyorsa veya henüz atanmamışsa “null” olarak tanımlanabilir. Diğer yandan “undefined”, bir değişkenin tanımlandığını ancak bir değere atanmadığını gösterir.

Ancak bu iki değerin dışında, JavaScript’te “falsy” olarak adlandırılan false, 0 veya boş bir string ("") gibi başka değerler de bulunmaktadır. Fakat bu değerler, gerçekte geçerli değerlerdir ve belirli bir anlam taşırlar.

İşte “nullish coalescing” operatörü tam da bu noktada devreye girer. Bu operatör, sadece “null” ve “undefined” değerlerini kontrol ederek, diğer “falsy” değerlerin yanıltıcı sonuçlara yol açmasını engeller. Bu sayede, kod yazarken daha kesin ve öngörülebilir sonuçlar elde edebiliriz.

“Nullish coalescing” operatörü, bu özel iki değeri hedef alarak, kod yazarken daha kesin ve öngörülebilir sonuçlar elde etmemizi sağlar. Mesela, bir değişkenin değerinin “0” (sıfır) olması bazı senaryolarda geçerli bir değer olabilmektedir. Böylesi senaryolarda “or” (||) operatörünü kullanırsak, “0” değeri “falsy” olarak değerlendirilir ve beklenmeyen sonuçlar elde edebiliriz. İşte “nullish coalescing” operatörünü kullanarak sadece “null” ve “undefined” değerlerini kontrol edebilir ve bu tür yanıltıcı durumların önüne geçeriz.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu