为什么parseInt(Infinity)返回NaN而parseFloat(Infinity)返回无穷大?

时间:2016-07-13 16:35:07

标签: javascript type-conversion nan infinity

使这两个函数对于无穷大和无穷大的行为有什么不同的原因。有没有人发现这种不一致有用吗?

parseInt(Infinity); // NaN
parseFloat(Infinity); // Infinity

1 个答案:

答案 0 :(得分:5)

这个问题的答案恰好在两个函数的规范中:

parseInt获取字符串参数。

  

如果第一个字符无法转换为数字,则parseInt返回NaN。

parseFloat

  

parseFloat也可以解析并返回值Infinity。您可以使用isFinite函数来确定结果是否为有限数(不是Infinity,-Infinity或NaN)。

parseInt无法返回infinity,因为infinity不在JavaScript的整数范围内。而它在浮点范围内是有效的。

至于有用的?我不能说。在我工作的域中,NaN表示发生了错误,我不相信我使用infinity