if / else if / else
const age = 20;
if (age < 13) {
console.log("çocuk");
} else if (age < 18) {
console.log("genç");
} else {
console.log("yetişkin");
}Süslü parantez tek satırlık bloklarda bırakılabilir ama bırakma — sonradan satır eklerken bug üretir.
Ternary
Tek bir değer seçmek için:
const fee = isStudent ? 0 : 100;İç içe yazma. Birden fazla koşul varsa if'e geç.
switch
const day = "PAZARTESI";
switch (day) {
case "PAZARTESI":
case "SALI":
console.log("Hafta başı");
break;
case "CUMA":
console.log("Hafta sonu yaklaşıyor");
break;
default:
console.log("Diğer");
}break koymazsan fall-through olur — bir sonraki case'e devam eder. Bu
özellik bazen istenir (yukarıdaki PAZARTESI/SALI gibi).
Modern alternatif: object lookup
switch yerine sıkça obje kullanılır:
const messages = {
PAZARTESI: "Hafta başı",
CUMA: "Hafta sonu yaklaşıyor",
};
const text = messages[day] ?? "Diğer";Daha temiz, daha test edilebilir.
Guard clause (erken çıkış)
İç içe if'lerden kaçınmak için:
// ❌ kötü
function process(user) {
if (user) {
if (user.active) {
if (user.email) {
// iş burada
}
}
}
}
// ✅ iyi
function process(user) {
if (!user) return;
if (!user.active) return;
if (!user.email) return;
// iş burada
}💡İpucu
Bir koşul 3 satırdan uzun bir mantığı kontrol ediyorsa, koşulu bir
const değişkene almak okunabilirliği artırır:
const isEligible = user.active && user.age >= 18 && !user.banned;
if (isEligible) { ... }