var s ="0123";
var a = parseInt(s);
alert(a);结果怎么是83,而不是123?

解决方案 »

  1.   

    parseInt语法:parseInt(string, radix);
      其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。
      在默认不指定radix时,当以0x开关时,为十六进制;如果以0开头且第二位不为x,则认为是八进制,(因为八进制不能有8,9所以报错返回0)。 var s ="0123";
    var a = parseInt(s);你以0开头,parseInt就转成八进制了~·
      

  2.   

    0八进制,0x才是十六进制吧?parseInt(sNum)
    对字符串型转化成int型
    parseInt('12ab')// 12, parseInt('12.2')// 12, parseInt('da22')// NaN, parseInt('oxA')// 10
    parseInt('10',2)// 2 , parseInt('10',8)// 8 , parseInt('10',10)// 10 
    parseInt('010')// 8  , parseInt('010',8)//8 , parseInt('010',10)// 10