提问人:Fabrício Matté 提问时间:6/17/2012 更新时间:6/17/2012 访问量:1892
parseInt 用于解析数字字符串的替代方法
parseInt Alternatives for parsing numerical strings
问:
假设我有一个数字字符串:
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
或者这些也可以安全使用吗?
答:
3赞
Oleg
6/17/2012
#1
从可读性和可维护性的角度来看是最佳选择。它清楚地告诉了它做什么,并且可靠地做到了。parseInt
明天,当一个开发人员同事加入这个项目时,几个月后你自己就会看你自己的代码,或者如果你突然决定增加十个而不是一个,你使用起来的麻烦就会减少。parseInt
另外,试试 JSLint。这是值得的。
评论
1赞
Fabrício Matté
6/17/2012
是的,在阅读了所有评论之后,它似乎更具可读性和可维护性,而且我也主要从事小组项目。谢谢大家的帮助。parseInt
0赞
Rob W
6/17/2012
我推荐 JSHint 而不是 JSLint,因为它允许更多的过滤器。JSLint 抱怨太多了。
0赞
Oleg
6/17/2012
@RobW我认为这是个人喜好的问题。我们都可以自由选择最适合的。我更喜欢 JSLint,因为它更严格,而且我认为 Douglas 在那里做了很多很好的思考。此外,您还可以在其中禁用很多检查。
评论
var bar = parseInt(foo, 10) + 1
0x
'use strict'; 01