CodeBlanks Logo Icon CodeBlanks

Optional chaining

?. ile null-safe erişim öğrenirsin.

Optional chaining

Bir nesnenin iç içe özelliğine erişirken ara değerlerin null veya undefined olma riskini optional chaining operatörü ?. ile yönetirsin. user?.address?.city çağrısı, user veya address null/undefined ise hata fırlatmadan undefined döndürür.

Geleneksel yöntemle aynı kontrol user && user.address && user.address.city yazımını gerektirir; bu uzun ve hata yapmaya açıktır. ?. ile aynı sonucu kısa ve güvenli biçimde alırsın. API yanıtları gibi bazı alanların bulunmayabileceği verilerde özellikle yararlıdır.

null ile undefined farkı

JavaScript'te null bilinçli olarak "değer yok" anlamında, undefined ise "tanımlanmamış" anlamında kullanılır. Bir değişkene henüz değer atanmadıysa undefined olur; programcı boş bırakmak isterse null yazar.

Optional chaining her ikisini de güvenli biçimde ele alır: x?.y ifadesinde x ister null ister undefined olsun sonuç undefined'dir. Hata fırlatılmaz. Bu özellik sayesinde iç içe veriye erişirken try/catch veya uzun && zincirleri yazmadan güvenli kod üretirsin.

Uygulama Kullanıcı adresini al

user değişkeni null değerini taşıyor. city adında bir değişken tanımla ve user?.address?.city sonucunu ata. Sonra city'yi console.log ile yazdır. Çıktı tek satırda undefined olmalı.

Başlangıç kodu

index.js
const user = null;
// city değişkenini ?. ile tanımla ve yazdır

Örnek çözüm

index.js
const user = null;
const city = user?.address?.city;
console.log(city);

Beklenen çıktı

undefined

Soru ve cevaplar

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

1 Optional chaining yaz

Soru
const city = user____address?.city;
Cevap
const city = user?.address?.city;

Açıklama: ?. ile null-safe erişim sağlanır.

2 null?.city sonucu ne olur?

index.js
null?.city
  • "city"
  • true
  • null.city hatası
  • undefined Doğru cevap

Açıklama: ?. null'da hata fırlatmaz; undefined döner.

3 Operatörü anlamına eşle

Kavram Anlamı
?. Null-safe erişim
. Sıradan erişim
?? Nullish birleştirme
|| Veya mantığı

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