В данном уроке мы с вами изучим, какие варианты
сокращений допускает конструкция 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('верно'); // эта строка внутри условия
}
Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки.