JS Функция перестает работать при удалении из неё console.log()

Написал функцию для преобразования названия месяца в его порядковый номер. Но функция почему-то перестает работать (возвращает undefined), если удалить из неё console.log(). Не могу понять, почему это происходит и как вообще консоль.лог может влиять на работоспособность кода?

let months = ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"];

let monthID = prompt("Название или номер месяца?").toLowerCase();

function formatMonth (mon) {
  if ((mon).toString().length > 2) {
  mon = months.indexOf(mon) + 1; 

  } else 
  console.log(); // Если убрать эту строку, функция перестает работать
  return mon;
}

alert("Этот месяц идет по счету " + formatMonth(monthID));

Ответы (2 шт):

Автор решения: Igor
} else {
  console.log(); // Если убрать эту строку, функция продолжает работать
}
return mon;

Когда Вы комментируете console.log(); в Вашем коде, return mon; попадает в else.

→ Ссылка
Автор решения: Grundy

Отличный пример почему после if и else стоит всегда выражение брать в скобки.

} else 
  console.log(); // Если убрать эту строку, функция перестает работать
return mon;

В данном виде console.log() выполнятся в блоке else.

} else 
return mon;

Теперь в блоке else выполняется return mon, а значит результат возвращается только если исходное выражение в if - ложно.

В данном случае достаточно просто убрать else, так как в этом блоке ничего не происходит.

Либо добавить скобки вокруг блока:

else {
  console.log(); // Если убрать эту строку, функция перестает работать        
}
return ...

В этом случае убрав строку с console.log в else останется просто пустой блок.

→ Ссылка