Problem opcjonalności nawiasów klamrowych w if-else

Pomimo tego, że JavaScript dopuszcza pokazane powyżej skróty z nawiasami klamrowymi, ja generalnie nie polecam tak robić, ponieważ jest to wylęgarnia trudnych do wychwycenia błędów. Niech na przykład będzie następujący kod:

javascriptlet num = 3;

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

Załóżmy teraz, że postanowiliśmy, jeśli warunek jest spełniony, wypisać jeszcze drugą wiadomość z tekstem '+++':

javascriptlet num = 3;

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

Jednakże, bez nawiasów klamrowych wewnątrz warunku znajduje się tylko pierwsza wiadomość. Czyli pierwsza linia będzie się wykonywać przy prawdziwym warunku, a druga - zawsze.

Faktycznie nasz kod jest równoważny takiemu:

javascriptlet num = 3;

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

console.log('+++'); // ta linia znalazła się poza warunkiem

A my chcielibyśmy taki kod:

javascriptlet num = 3;

if (num > 0) {
  console.log(num);
  console.log('+++'); // ta linia jest wewnątrz warunku
}

Właśnie dlatego zaleca się zawsze stawiać nawiasy klamrowe, aby nie wpadać w tego rodzaju błędy.