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 шт):
} else {
console.log(); // Если убрать эту строку, функция продолжает работать
}
return mon;
Когда Вы комментируете console.log(); в Вашем коде, return mon; попадает в else.
Отличный пример почему после 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 останется просто пустой блок.