JavaScript’te Nullish Coalescing ve İsteğe Bağlı Zincirleme
JavaScript, modern web geliştirmede en yaygın kullanılan dillerden biridir. Bu gücüne rağmen, bazen null veya undefined değerlerle çalışma zorlukları yaşayabiliriz. Neyse ki, JavaScript’in son sürümleri bu sorunları azaltmak için iki güçlü operatör sunuyor: Nullish Coalescing (??) ve İsteğe Bağlı Zincirleme (?.). Bu makalede, bu operatörleri detaylı bir şekilde inceleyeceğiz ve kullanım örnekleriyle açıklayacağız.
Nullish Coalescing (??) Operatörü
Nullish Coalescing operatörü (??), bir değerin null veya undefined olup olmadığını kontrol eder. Eğer değer null veya undefined ise, operatörün sağ tarafındaki değeri döndürür. Aksi takdirde, sol tarafındaki değeri döndürür. Bu, || operatöründen farklıdır; çünkü || operatörü, 0, false, ve boş diziler gibi “falsy” değerleri de kontrol eder.
let kullanıcıAdı = null;
let varsayılanAd = "Misafir";
let gösterilecekAd = kullanıcıAdı ?? varsayılanAd; // gösterilecekAd = "Misafir"
kullanıcıAdı = "Fatih";
gösterilecekAd = kullanıcıAdı ?? varsayılanAd; // gösterilecekAd = "Fatih"
let yaş = 0;
let varsayılanYaş = 18;
let gösterilecekYaş = yaş ?? varsayılanYaş; // gösterilecekYaş = 0 (çünkü 0 nullish değildir)
Gördüğünüz gibi, ?? operatörü sadece null veya undefined değerleri için varsayılan değeri kullanır. Diğer falsy değerler, sol taraftaki değer olarak kabul edilir.
İsteğe Bağlı Zincirleme (?.) Operatörü
İsteğe Bağlı Zincirleme operatörü (?.) nesnelerin özelliklerine erişirken null veya undefined değerlerle karşılaşma durumunda hata vermeyi önler. Eğer bir nesne veya nesne özelliği null veya undefined ise, operatör undefined döndürür ve hata fırlatmaz. Bu, uzun ve karmaşık nesne yapılarına erişimde hata ayıklama sürecini önemli ölçüde kolaylaştırır.
let kullanıcı = {
adres: {
şehir: "İstanbul"
}
};
let şehir = kullanıcı?.adres?.şehir; // şehir = "İstanbul"
kullanıcı = null;
şehir = kullanıcı?.adres?.şehir; // şehir = undefined (hata fırlatmaz)
Yukarıdaki örnekte, eğer kullanıcı veya kullanıcı.adres null veya undefined olsaydı, kullanıcı.adres.şehir erişiminde hata alırdık. Ancak, ?. operatörü sayesinde, undefined değeri döndürülür ve programın çalışması devam eder.
Nullish Coalescing ve İsteğe Bağlı Zincirleme Birlikte Kullanımı
Bu iki operatör, birlikte kullanıldığında çok güçlü bir kombinasyon oluşturur. Örneğin, bir kullanıcı profilinden şehir bilgisini almak ve varsayılan bir değer atamak istediğimizi düşünelim:
let kullanıcı = { adres: { } };
let şehir = kullanıcı?.adres?.şehir ?? "Bilinmiyor"; // şehir = "Bilinmiyor"
kullanıcı = { adres: { şehir: "Ankara" } };
şehir = kullanıcı?.adres?.şehir ?? "Bilinmiyor"; // şehir = "Ankara"
Bu örnekte, öncelikle isteğe bağlı zincirleme ile şehrin olup olmadığını kontrol ediyoruz. Eğer şehir bilgisi yoksa veya kullanıcı nesnesi eksikse, Nullish Coalescing ile varsayılan “Bilinmiyor” değerini atıyoruz.
Sonuç
Nullish Coalescing ve İsteğe Bağlı Zincirleme operatörleri, JavaScript kodunuzu daha temiz, daha okunabilir ve hata ayıklamayı daha kolay hale getirir. Bu operatörleri kullanarak, null veya undefined değerlerle ilgili hataları önleyebilir ve kodunuzun daha güvenilir olmasını sağlayabilirsiniz. Daha fazla JavaScript geliştirme ipucu ve kaynağı için fatihsoysal.com adresini ziyaret edebilirsiniz.
Umarım bu makale faydalı olmuştur. Sorularınız varsa lütfen yorumlarda belirtin!
Faydalı Kaynaklar:
#Etiketler: JavaScript, Nullish Coalescing, Optional Chaining, JavaScript Operatörleri, Programlama, Web Geliştirme, Null, Undefined, Hata Ayıklama, Kod Temizliği, Fatih Soysal
