【问题标题】:why parseInt converts value to infinity?为什么 parseInt 将值转换为无穷大?
【发布时间】:2013-09-19 06:23:09
【问题描述】:

我正在这样做:

var s = '50';

var a = parseInt(s);

console.log(a); //prints 50

console.log(_.isFinite(a)); //prints false

那么为什么当 a = 50 时 parseInt 将 a 变为无穷大呢?

【问题讨论】:

  • 我在传递50 时收到true。你用的是什么版本?顺便说一句,这似乎与 parseInt 没有任何关系 - 它产生的数字 50 正如预期的那样。
  • 为什么要在_ 上调用isFinite 方法?一般来说,你应该在使用它时向 parseInt 提供 radix 参数;只是为了安全。
  • @DarkCthulhu、Pratik、NeelBhatt:因为it's an Underscore method?
  • @DarkCthulhu:不一样——_.isFinite 只允许数字和数字的字符串表示,而isFinite() 在参数上调用Number(),使得(比如说)false 导致true而对于 Underscore 版本则不是这样。
  • 我需要查看我的项目..

标签: javascript jquery underscore.js parseint


【解决方案1】:

尝试运行它。我认为你的“_”。在 isFinite 之前是问题。

var s = '50';

var a = parseInt(s);

alert(a); //prints 50

alert(isFinite(a));//prints true

【讨论】:

猜你喜欢
  • 2016-11-16
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2023-03-16
  • 2018-12-03
  • 2022-01-23
相关资源
最近更新 更多