在Javascript中将NaN更改为0

时间:2014-02-06 13:21:56

标签: javascript

我有一个代码可以在bootstrap模式中返回javascript平均函数的结果。但当其中一个输入空白时,他会返回NaN。我如何将NaN更改为0?

这是我返回结果的代码:

 $(".average").click(function () {
 var result = average();
 $("#myModal .modal-body h2").text(result);
 $("#myModal").modal();
 });

3 个答案:

答案 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;

nullundefined 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功能。