Начну из далека. Писал калькулятор, и до определённого момента у меня при делении на 0 выводило Error (как и должно было), но почему-то позже это перестало работать и при делении на 0 у меня всё зависает, я так понимаю, что происходит жесткая утечка памяти. Вот код, который отвечает за математическую часть:
$('.result').click(function(){
console.log('In')
if(inputLength != 0){
try {
let result = eval($('.input-field').text());
$('.input-field').html('').append(+result.toFixed(10));
inputLength = countDigits(result);
}catch(e) {
$('.input-field').html('Error');
inputLength = 5;
} // end catch
}
}); // end click
Принцип такой. Есть поле input-field, куда при клике на клавиши добавляются символы (например 5+2 и т.д). При клике на клавишу result, js считывает значение поля input-field и выполняет код благодаря eval (Да да, eval is evil, но всё же :D) так же есть try{}catch{}, что бы при вводе 5+ выводило ошибку. Сам вопрос: Почему при делении на ноль происходит какая-то дичь?
P.S: Вот сам калькулятор
Правильный ответ дал Дмитрий Горный в комментариях.
в функцию countDigits(n) приходит "Infinity" и происходит зависание, нужно добавить исключение или проверку, чтобы n было обязательно числом.
Продвижение своими сайтами как стратегия роста и независимости