假设我有一个数字字符串:
var foo = "0";
假设我想将它解析为一个数字,并将其递增并将值分配给 bar
(只是一个算术示例),我知道我可以这样做:
var bar = parseInt(foo, 10)+1;
但我相信上面的例子可以更简单、更易读。考虑这个例子:
//alternative 1
var bar = +foo+1;
还有这个:
//alternative 2
var bar = ++foo;
对于 bar
,这两者也会产生相同的结果(后者也会增加 foo
,但这没问题)。
我的问题是,通过使用这些替代方案之一,我是否会将我的代码暴露在使用 parseInt
时可能存在的依赖于实现的缺陷中?不指定 radix
/base
?
或者这些也可以安全使用吗?
最佳答案
从可读性和可维护性的 Angular 来看,parseInt
是最好的选择。它清楚地说明了它的作用并且可靠地做到了。
明天,当一位开发人员加入该项目时,或几个月后,当您自己查看自己的代码时,或者如果您突然决定增加 10 而不是只增加 1,您将在更少的时间使用 parseInt
时遇到问题。
另外,试试 JSLint .这是值得的。
关于javascript - parseInt 解析数字字符串的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11067362/