Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Как запретить NaN?

#javascript #веб_программирование


Код AppHelpers.formatNumber(total), иногда возвращает NaN и вставляет его в страницу.
Пытался через if, isNaN, результата нет. Вообщем нужно чтобы вместо NaN был 0  
    


Ответы

Ответ 1



Возможно прозвучит дико, однако есть такой способ проверить число на NaN var y = 0/0; // тут явный NaN if (y === y){ // потому как NaN === NaN => false //значит y это число } else{ // иначе это NaN или undefined return 0; // или любой другой ответ }

Ответ 2



Есть специальная функция для этого, isNaN(), возвращает true если переменная равна NaN: var result = AppHelpers.formatNumber(total); if (isNaN(result)) result = 0;

Ответ 3



Самый простой вариант: x = AppHelpers.formatNumber(total) || 0 Его недостаток в том, что он будет подменять нулём не только NaN, но и другие значения, которые соответствуют false (например, пустая строка). Но если на выходе вы только числа и ожидаете, то этот код будет вполне хорошо работать.

Ответ 4



Верного решения так и нашел. Пришлось писать костыль самому: let totalSum = AppHelpers.formatNumber(total) + ''; // Преобразование в строку if (totalSum == 'NaN') return 0;

Комментариев нет:

Отправить комментарий