Баг при делении на ноль

82
15 марта 2021, 11:10

Начну из далека. Писал калькулятор, и до определённого момента у меня при делении на 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: Вот сам калькулятор

Answer 1

Правильный ответ дал Дмитрий Горный в комментариях.

в функцию countDigits(n) приходит "Infinity" и происходит зависание, нужно добавить исключение или проверку, чтобы n было обязательно числом.

READ ALSO
Скачивание картинки по прямой ссылке в браузере

Скачивание картинки по прямой ссылке в браузере

Нужно сделать так что бы по клику на картинку, она начинала скачиваться пользователю на компьютерСсылка на картинку приходит от сервера

96
Как создать excel таблицу на основе объекта js?

Как создать excel таблицу на основе объекта js?

Я хочу создать xls файл с таблицей, в которой будет отображаться js объект при помощи библиотеки exeljsПочитал немного документация и написал...

94
xhr.open IP адрес

xhr.open IP адрес

Можно ли как-то использовать в запросе вместо url айпи адрес? xhr2open('POST', 'здесь айпишник/Server/load

105
При setState в ReactJS обновляю лист с фильтрацией, но почему то Изображение остается от предыдущего списка, почему?

При setState в ReactJS обновляю лист с фильтрацией, но почему то Изображение остается от предыдущего списка, почему?

При setState в ReactJS обновляю лист с фильтрацией, но почему то Изображение остается от предыдущего списка, почему?

102