Проблема необязательности фигурных скобок в if-else
Не смотря на то, что JavaScript допускает показанные выше сокращения с фигурными скобками, я в общем-то не рекомендую так делать, так как это рассадник трудноуловимых ошибок. Пусть к примеру есть следующий код:
let test = 3;
if (test > 0)
console.log(test);
Пусть теперь мы решили в том случае, если
условие выполняется, выводить еще и второе
сообщение с текстом '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Однако, без фигурных скобок внутри условия находится только первое сообщение. Есть первая строка будет срабатывать при верном условии, а вторая - всегда.
Фактически наш код эквивалентен такому:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // эта строка оказалась снаружи условия
А мы бы хотели такой код:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // эта строка внутри условия
}
Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки.