Energy of Love  
日历
<2012年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
统计
  • 随笔 - 70
  • 文章 - 0
  • 评论 - 80
  • 引用 - 0

导航

常用链接

留言簿

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
bug描述:
    parseInt("08")=0;
    parseInt("09")=0;

这里先回顾一下parseInt的函数声明:

/*
 * 将字符串解析成数字时,从左向右依此解析,解析到第一个非法字符即停止。
 * 若指定radix为2-36之间的数字,则按相应的进制进行解析;
 * 若radix指定为1,或大于36的数字,则直接返回NaN
 * 若指定radix为0,或未指定radix,则根据字符串开头字符确定:
 *  以'1-9'开头的字符串,按10进制解析;
 *  以'0'开头的字符串,按8进制解析;
 *  以'0x'或'0X'开头的字符串,按16进制解析。
 * 
 * @param string 要被解析的字符串。
 * @param radix  表示要解析的数字的基数。该值介于 2 ~ 36 之间。
 
*/
parseInt(string, radix)


 ‘01’到’07’,按8进制或10进制解析会得到相同的结果。 而’08’,’09’按8进制解析会得到’0’,因为’8’、’9’在8进制中是非法字符,不会被解析。由此导致上述的bug。
找到问题根源,修复就变得很简单了,显示指定radix为10.
parseInt("08",10);
posted on 2012-11-08 13:49 不高兴 阅读(545) 评论(4)  编辑  收藏 所属分类: HTML/JS/CSS
评论:
  • # http://www.survetementpascherpc.fr  http://www.survetementpascherpc.fr Posted @ 2015-09-15 16:27

    不要使用System.out.println作为调试工具
    启用所有组件的详细的日志记录级别
    使用一个日志分析器来阅读日志
      回复  更多评论   

  • # re: parseInt的08,09bug  http://www.casquettepascherfrance.fr Posted @ 2015-10-15 11:09
    8进制或10进制解析会得到相同的结果。 而’08’,’09’按8进制解析会得到’0’,因为’8’、’9’在8进制中是非法字符,不会被解析。由此导致上述的bug。
    找到问题根源,修复就变得很简单了,显示指定radix为10.
    parseInt("08",10);  回复  更多评论   

  • # re: parseInt的08,09bug  hollister pas cher Posted @ 2015-11-10 17:40
    F5-Step Into:移动到下一步,如果当前的行是一个方法调用,将进入这个方法的第一行。  回复  更多评论   

  • # re: parseInt的08,09bug  http://www.gardenbaby.fr Posted @ 2016-01-20 16:20
    使用一个日志分析器来阅读日志  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 不高兴 Powered by: 博客园 模板提供:沪江博客