if-else yapısında isteğe bağlı küme parantezleri sorunu
JavaScript'in yukarıda gösterilen küme parantezi kısayollarına izin vermesine rağmen, genel olarak bunu yapmanızı pek tavsiye etmiyorum, çünkü bu, tespit edilmesi zor hatalar için bir yuva görevi görür. Örneğin aşağıdaki kod olduğunu varsayalım:
let test = 3;
if (test > 0)
console.log(test);
Şimdi diyelim ki koşul sağlandığında,
'+++' yazılı ikinci bir mesaj daha
göstermeye karar verdik:
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Ancak, küme parantezleri olmadan koşulun içinde sadece ilk mesaj bulunur. Yani ilk satır koşul doğru olduğunda çalışacak, ikincisi ise her zaman çalışacaktır.
Aslında kodumuz buna eşdeğerdir:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // bu satır koşulun dışında kaldı
Oysa biz şöyle bir kod istiyorduk:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // bu satır koşulun içinde
}
İşte bu yüzden, bu tür hatalara düşmemek için her zaman küme parantezlerinin kullanılması önerilir.