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

Dev*_*wal 0 javascript nan type-conversion infinity

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

parseInt(Infinity); // NaN
parseFloat(Infinity); // Infinity
Run Code Online (Sandbox Code Playgroud)

Jer*_*her 5

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

parseInt接受一个字符串参数.

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

parseFloat

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

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

至于有用吗?我不能说.在我工作的域中,NaN意味着发生了错误,我不相信我曾经使用过infinity