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:
javascriptlet 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 '+++':
javascriptlet 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:
javascriptlet num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // denna rad hamnade utanför villkoret
Medan vi ville ha denna kod:
javascriptlet 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.