【发布时间】: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