İsteğe bağlı zincirleme
- JavaScript kursu
- Başlangıç
- Ders 91/133
- 5 dk
?. 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.
Başlangıç kodu
// user nesnesini bir profile ve city ile oluştur
// city değişkenini user?.profile?.city ile güvenle al
// city değişkenini yazdırÖrnek çözüm
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.
Başlangıç kodu
// obj değişkenini null yap
// result değişkenini obj?.greet?.() ile ata
// result'u yazdırÖrnek çözüm
const obj = null;
const result = obj?.greet?.();
console.log(result);Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 null?.name ifadesinin sonucu nedir?
null?.name- null
- ""
- undefined Doğru cevap
- "name"
Açıklama: 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);
const user = { address: { city: "İstanbul" } };
const city = user?.address?.city;
console.log(city);
Açıklama: address de güvenli erişim için ?. kullanılır.
3 İfade ile sonucunu eşleştir
| Kavram | Anlamı |
|---|---|
null?.city |
undefined |
({a:1})?.a |
1 |
({n:5})?.n |
5 |
({s:'hi'})?.s |
'hi' |