Всегда ли должен завершить IF ELSEом?
Всегда ли должен завершить IF ELSEом ?
Ответы (2 шт):
Всегда ли должен завершить IF ELSEом ?
Нет, не всегда.
Например есть функция, где нужно вывести число на экран только тогда, когда оно больше 10. Можно написать так:
function showNumber(number) {
if (number > 10)
alert(number);
else
return;
}
Однако это бессмысленно. Достаточно написать так:
function showNumber(number) {
if (number > 10)
alert(number);
}
Другой случай:
if (count(params) > 0) {
someVar = filterData(myData);
filterMap = params;
} else {
filterMap ['name' => null];
}
Мы видим, что в любом случае мы задаем значение для переменной filterMap. То есть какое-то изначальное значение будет. Проще этот код написать так:
filterMap ['name' => null];
if (count(params) > 0) {
someVar = filterData(myData);
filterMap = params;
}
И таких случаев бесконечное множество, когда else добавляет избыточность
Если обратиться к спецификации конструкция if имеет две формы
IfStatement[Yield, Await, Return]:
if ( Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] else Statement[?Yield, ?Await, ?Return]
if ( Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
Следовательно else может как присутствовать, так и отсутствовать.
При этом, в случае присутствия else будет связан с ближайшим к нему if без else.