Mantıksal atama
&&=, ||= ve ??= ile kısayol mantıksal atamalarını öğrenirsin.
Mantıksal atama
JavaScript, mantıksal işleçleri atamayla birleştiren üç kısayol sunar: &&=, ||= ve ??=. Bunlar bir değişkeni yalnızca gerekli olduğunda günceller ve kodu kısa tutar.
x ||= 5, x falsy ise 5 atar. x &&= 5, x truthy ise 5 atar. x ??= 5, x null/undefined ise 5 atar. Örnek: config.timeout ??= 3000;. timeout zaten bir değerse korunur; yoksa 3000 olur.
Hangi işleç ne zaman?
Üç işleç farklı koşullarda atama yapar, bu yüzden doğru olanı seçmelisin. ||= falsy değerleri değiştirir; 0, "" veya false da atar. ??= yalnızca null ve undefined için atar.
&&= ise yalnızca değişken truthy ise atar; genellikle bir nesnenin özelliğini koşullu güncellemek için kullanılır. Örnek: item.inStock &&= true;. item.inStock varsa true yapılır. Böylece her işleç farklı bir niyete uygun çıkar.
Uygulama ||= ile varsayılan ver
config değişkenini { retries: 0 } yap. config.retries ||= 3 yaz. config.retries'i yazdır.
Örnek çözümü göster
const config = { retries: 0 };
config.retries ||= 3;
console.log(config.retries);
Uygulama Üç atamayı birleştir
state değişkenini { count: 0, label: null, mode: "on" } yap. state.count ||= 5 yaz. state.label ??= "Varsayılan" yaz. state.mode &&= "active" yaz. state'i yazdır.
Örnek çözümü göster
const state = { count: 0, label: null, mode: "on" };
state.count ||= 5;
state.label ??= "Varsayılan";
state.mode &&= "active";
console.log(state);
Kendini test et
-
Hangi işleç yalnızca null/undefined için atama yapar?
- ??=
- ||=
- &&=
- =
Cevabı göster
??= — Doğru. ??= yalnızca null ve undefined için atama yapar.
-
??= ile atama
const config = { timeout: null }; config.timeout____ 3000; console.log(config.timeout);Cevabı göster
const config = { timeout: null }; config.timeout??= 3000; console.log(config.timeout); -
İşleci davranışıyla eşleştir
- ||=
- falsy ise atar
- ??=
- null/undefined ise atar
- &&=
- truthy ise atar
- =
- her zaman atar