Tuesday, February 12, 2008

Using parseFloat() or "+" instead of parseInt()

parseInt() 在解析字符串为数字的时候,有时候会有点问题,如
parseInt("010") 可以被解析成10,也可能被解析成8,字符串以"0"开头可以被做为8进制解析也可以被做为十进制解析,所以parseInt('08')得到的结果是0,而parseInt('07')得到的结果却是7,如果parseInt('08', 10)的第二个参数明确说明解析为十进制数字时就会得到结果8。
一般解析字符串为数字时可以用parseFloat()这个全局函数或者是"+"运算符。
['2008', '02', '11', '06', '21', '03'].map(function(v) { return + v });
# [2008, 2, 11, 6, 21, 3]

No comments :