Aaltosulkujen vapaaehtoisuuden ongelma if-else-lauseessa

Huolimatta siitä, että JavaScript sallii ylla näytetyt aaltosulkeiden lyhennykset, en yleensä suosittele niiden käyttöä, koska ne ovat vaikeasti havaittavien virheiden pesä. Oletetaan esimerkiksi, että on seuraava koodi:

javascriptlet test = 3;

if (test > 0)
  console.log(test);

Oletetaan nyt, että päätimme siinä tapauksessa, jos ehto täyttyy, tulostaa myös toisen viestin tekstillä '+++':

javascriptlet test = 3;

if (test > 0)
  console.log(test);
  console.log('+++');

Kuitenkin ilman aaltosulkja ehtorakenteen sisällä on vain ensimmäinen viesti. Toisin sanoen ensimmäinen rivi toimii kun ehto on tosi, ja toinen - aina.

Koodimme on käytännössä vastaava kuin:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
}

console.log('+++'); // tämä rivi jäi ehdon ulkopuolelle

Mutta me halusimme tällaisen koodin:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // tämä rivi on ehdon sisällä
}

Tästä syystä on suositeltavaa aina käyttää aaltosulkja, jotta ei joudu tällaisiin virheisiin.