是你不会用 parseInt 方法, 它有第二个参数, 就是进制参数
parseInt("08", 10);  //表示这个数字是十进制的就不会出错了.

解决方案 »

  1.   

    parseInt方法:
    描述
    返回由字符串转换得到的整数。
    语法
    parseInt(numstring, [radix]) 
    parseInt 方法的语法有如下部分: 部分 描述 
    numstring 必需的。要转换为数字的字符串。 
    radix 可选项。在 2 和 36 之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。 
    说明
    parseInt 方法返回与保存在 numstring 中的数字值相等的整数。如果 numstring 的前缀不能解释为整数,则返回 NaN(而不是数字)。 
    parseInt("abc")    // 返回 NaN.
    parseInt("12abc")  // 返回 12.
    可以用 isNaN 方法检测 NaN。
      

  2.   

    parseInt("09")==0
    与以下是一样的道理
    parseInt("0ddd")==0
    parseInt("01ddd")==1只截取前面可以认识的部分,再转化成整数
    8、9对八进制数而言,是不能解释的字符