Optional chaining
- Node.js kursu
- Başlangıç
- Ders 40/116
- 5 dk
?. 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
const user = null;
// city değişkenini ?. ile tanımla ve yazdırÖrnek çözüm
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
const city = user____address?.city;
const city = user?.address?.city;
Açıklama: ?. ile null-safe erişim sağlanır.
2 null?.city sonucu ne olur?
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ığı |