我有一个代码可以在bootstrap模式中返回javascript平均函数的结果。但当其中一个输入空白时,他会返回NaN。我如何将NaN更改为0?
这是我返回结果的代码:
$(".average").click(function () {
var result = average();
$("#myModal .modal-body h2").text(result);
$("#myModal").modal();
});
答案 0 :(得分:8)
您可以使用isNaN
功能检查值是否为NaN
:
var result = average();
if (isNaN(result)) result = 0;
将来,当ECMAScript 6广泛使用时,可以考虑切换到Number.isNaN
,因为isNaN
无法正确处理字符串作为参数。
与全局
isNaN
函数相比,Number.isNaN
不会遇到强制将参数转换为数字的问题。这意味着现在可以安全地传递通常会转换为NaN
的值,但实际上与NaN
的值不同。这也意味着只有number
类型的值NaN
才会返回true
。
比较:
isNaN("a"); // true
Number.isNaN("a"); // false
答案 1 :(得分:6)
为什么不只是OR,这是设置“后备”值的最常用方法之一
var result = average() || 0;
null
,undefined
和 NaN 都是假的,你最终得到的是0
,请注意0
是也是假的,在这种情况下也会返回0
,这应该不是问题。
答案 2 :(得分:3)
var result = average();
result = (isNaN(result) ? 0 : result); //ternary operator check the number is NaN if so reset the result to 0
使用isNaN
功能。