Проблема необязательности фигурных скобок в if-else

Не смотря на то, что JavaScript допускает показанные выше сокращения с фигурными скобками, я в общем-то не рекомендую так делать, так как это рассадник трудноуловимых ошибок. Пусть к примеру есть следующий код:

javascriptlet test = 3;

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

Пусть теперь мы решили в том случае, если условие выполняется, выводить еще и второе сообщение с текстом '+++':

javascriptlet test = 3;

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

Однако, без фигурных скобок внутри условия находится только первое сообщение. To есть первая строка будет срабатывать при верном условии, а вторая - всегда.

Фактически наш код эквивалентен такому:

javascriptlet test = 3;

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

console.log('+++'); // эта строка оказалась снаружи условия

А мы бы хотели такой код:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // эта строка внутри условия
}

Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки.