Сокращенный синтаксис if-else в JavaScript

В данном уроке мы с вами изучим, какие варианты сокращений допускает конструкция if-else.

Необязательность конструкции else

Для начала вам следует знать, что конструкция else не является обязательной.

В следующем примере на экран выведется алерт только в том случае, если значение переменной равно 1. В противном случае просто ничего не случится:

let test = 1; if (test == 1) { alert('yes'); }

Если переменная test равна 10, то пусть на экран выведется слово 'верно'. В противном случае пусть ничего не произойдет.

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

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

if (test == 0) { alert('верно'); } else { alert('неверно!'); }

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

if (test == 0) alert('верно'); else alert('неверно!');

Или так:

if (test == 0) { alert('верно'); } else alert('неверно!');

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

if (test == 0) alert('верно'); else alert('неверно!');

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

if (test == 0) { alert('верно'); } else { alert('неверно!'); }

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

if (test == 0) { alert('верно'); }

Замечание

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

let test = 3; if (test > 0) alert(test);

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

let test = 3; if (test > 0) alert(test); alert('верно');

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

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

let test = 3; if (test > 0) { alert(test); } alert('верно'); // эта строка оказалась снаружи условия

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

let test = 3; if (test > 0) { alert(test); alert('верно'); // эта строка внутри условия }

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