Problemet med valfria klammerparenteser i if-else
Trots att JavaScript tillåter de ovan visade förkortningarna med klammerparenteser, rekommenderar jag generellt att inte göra så, eftersom det är en yngelplats för svårfångade fel. Låt oss till exempel ha följande kod:
let num = 3;
if (num > 0)
console.log(num);
Låt oss nu säga att vi bestämde oss för att, om
villkoret är uppfyllt, också skriva ut ett andra
meddelande med texten '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Men, utan klammerparenteser, finns bara det första meddelandet inuti villkoret. Det betyder att den första raden kommer att aktiveras när villkoret är sant, och den andra - alltid.
Vår kod är faktiskt ekvivalent med denna:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // denna rad hamnade utanför villkoret
Medan vi ville ha denna kod:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // denna rad är inuti villkoret
}
Det är därför det rekommenderas att alltid använda klammerparenteser, för att undvika den här typen av misstag.