CodeBlanks Logo Icon CodeBlanks

Kısa devre değerlendirme

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

&& ve || operatörlerinin değeri nasıl kısa devre ettiğini ve buna dayalı desenleri öğrenirsin.

Kısa devre değerlendirme

JavaScript'te && (ve) ve || (veya) işleçleri yalnızca true/false döndürmez; sağdaki ya da soldaki değeri döndürür. Bu davranışa kısa devre değerlendirme denir.

&& sol taraf yanlışsa (falsy) solu, değilse sağı döndürür: 0 && "x" sonucu 0'dır. || sol taraf doğruysa (truthy) solu, değilse sağı döndürür: "a" || "b" sonucu "a"'dır. Böylece || ile varsayılan değer, && ile koşullu erişim kurabilirsin.

Varsayılan ve guard desenleri

Kısa devre özellikle iki yaygın desende kullanılır. Birincisi varsayılan değer: const name = input || "Misafir";. Burada input boşsa name otomatik olarak "Misafir" olur.

İkincisi guard (koruma): user && user.name. user null ya da undefined ise && sol tarafı döndürür ve user.name hiç erişilmez; böylece hata alınmaz. user varsa sağ taraf çalışır ve isim döner.

Uygulama Varsayılan değer deseni

userName değişkenini boş dize "" yap. displayName değişkenini userName || "Misafir" yap. displayName'i yazdır.

Örnek çözümü göster
const userName = "";
const displayName = userName || "Misafir";
console.log(displayName);

Uygulama Guard deseni

user değişkenini { name: "Ayşe" } nesnesi yap. name değişkenini user && user.name yap. name'i yazdır.

Örnek çözümü göster
const user = { name: "Ayşe" };
const name = user && user.name;
console.log(name);

Kendini test et

  1. "" || "Misafir" ifadesinin sonucu nedir?

    "" || "Misafir"
    • ""
    • "Misafir"
    • true
    • false
    Cevabı göster

    "Misafir" — Doğru. Sol taraf boş dize (falsy) olduğundan || sağı döndürür.

  2. Varsayılan değer ver

    const userName = "";
    const displayName = userName ____ "Misafir";
    console.log(displayName);
    Cevabı göster
    const userName = "";
    const displayName = userName || "Misafir";
    console.log(displayName);
  3. İfade ile sonucunu eşleştir

    0 || "x"
    "x"
    "a" && "b"
    "b"
    null || 5
    5
    0 && "y"
    0

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