CodeBlanks Logo Icon CodeBlanks

İsteğe bağlı zincirleme

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

?. ile null ve undefined değerlere güvenle erişmeyi öğrenirsin.

İsteğeli zincirleme

?. işleci (isteğeli zincirleme, optional chaining) bir nesnenin özelliğine güvenli erişim sağlar. Erişilen değer null ya da undefined ise hata fırlatmak yerine undefined döndürür.

Örnek: const city = user?.address?.city;. Burada user ya da user.address yoksa city undefined olur; kod hata vermez. . yerine ?. yazman yeterlidir. Bu, iç içe nesnelerde özellik varlığını denetlemeden güvenli erişim kurar.

İsteğeli yöntem ve dizinleme

İsteğeli zincirleme yalnızca özelliklerle sınırlı değildir. İsteğeli yöntem çağrısı ?. ile yöntemleri de güvenli çağırır: obj?.greet?.(). Eğer obj ya da greet yoksa sonuç undefined olur; hata alınmaz.

Yine isteğeli dizinleme ?.[] ile dizilere güvenli erişir: arr?.[0]. Bu desenler API verilerinde derin özelliklere güvenle ulaşmak için çok kullanışlıdır; her adımı ayrıca denetlemek zorunda kalmazsın.

Uygulama İç içe ?. erişimi

user değişkenini { profile: { city: "İstanbul" } } yap. city değişkenini user?.profile?.city yap. city'yi yazdır.

Örnek çözümü göster
const user = { profile: { city: "İstanbul" } };
const city = user?.profile?.city;
console.log(city);

Uygulama İsteğeli yöntem çağrısı

obj değişkenini null yap. result değişkenini obj?.greet?.() yap. result'u yazdır.

Örnek çözümü göster
const obj = null;
const result = obj?.greet?.();
console.log(result);

Kendini test et

  1. null?.name ifadesinin sonucu nedir?

    null?.name
    • null
    • ""
    • "name"
    • undefined
    Cevabı göster

    undefined — Doğru. null üzerinde ?. kullanınca undefined döner, hata alınmaz.

  2. İç içe güvenli erişim

    const user = { address: { city: "İstanbul" } };
    const city = user?.address____city;
    console.log(city);
    Cevabı göster
    const user = { address: { city: "İstanbul" } };
    const city = user?.address?.city;
    console.log(city);
  3. İfade ile sonucunu eşleştir

    null?.city
    undefined
    ({a:1})?.a
    1
    ({n:5})?.n
    5
    ({s:'hi'})?.s
    'hi'

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