Необязательность фигурных скобок в JavaScript

В случае, если в фигурных скобках if или else будет только одно выражение, можно эти фигурные скобки не писать. Пусть, к примеру, дан вот такой код со всеми скобками:

if (test === 0) { console.log('+++'); } else { console.log('---'); }

Можно сократить его вот так:

if (test === 0) console.log('+++'); else console.log('---');

Или так:

if (test === 0) { console.log('+++'); } else console.log('---');

Можно также убрать все скобки, но оформить все не в линию, а вот так:

if (test === 0) console.log('+++'); else console.log('--');

Перепишите следующий код в сокращенной форме:

if (test > 0) { console.log('+++'); } else { console.log('---'); }

Перепишите следующий код в сокращенной форме:

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

Замечание

Не смотря на то, что 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('+++'); // эта строка внутри условия }

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

enru