日期:2014-05-16  浏览次数:20403 次

javascrip中为什么08,09转换成整型后是0呢?
function   setmonth(mListBox,   mSelected)   {
var   monthList   =   new   Array( "01 ",   "02 ",   "03 ",   "04 ",   "05 ",   "06 ",   "07 ",   "08 ",   "09 ",   "10 ",   "11 ",   "12 ");
        for   (var   i   =   0;   i   <=   monthList.length-1;   i++)   {    
      alert( "i== "+monthList[i]);
      alert( "parseInt= "+parseInt(monthList[i]));
        }
}


就像上面的代码一样,最后将08,09   变成整型之后就是0,这是为什么呢?
很着急,请大家帮帮忙

------解决方案--------------------
alert(parseInt( "08 ",10));
alert(parseInt( "09 ",10));

------解决方案--------------------
当在前面有 "0 "时,javascript的debugger会认为是一个八进制数,而 "08 "和 "09 "不是一个合法的八进制数,所以导致了那个问题

zhaoxiaoyang(梅雪香@深圳)指明是十进制则是对的
------解决方案--------------------
以0开头的数值类型为八进制数.