问题,为何返回NaNvar b=parseInt("8abc",8)alert(b);==========================
var b=parseInt("8abc",10)alert(b);
这里便返回8

解决方案 »

  1.   

    NaN  的全称是 Not a Number

    不是数字。

     当你转换失败时,提示,这个不是一个数字,不能转换成数字!
      

  2.   

    parseInt在转换字符串类型的变量时..是从左向右依次检查每个字符..首先判断这个字符是不是number类型的.如果是number类型的就转换为number类型..直到这个字符串的末尾...如果在字符串中包含字符..比如你上面的8abc在遇到a的时候自动结束转换..就只给你返回转换了的8 .....如果你的字符串不包含数字(aasdfa)..或者第一个(abc34)不是数字..那么他就会返回NaN
      

  3.   

    javascript 高级程序设计 第2版 26-27页有说明
      

  4.   


    var b=parseInt("8abc",8);
    alert(b);
    b=parseInt("8abc",10);
    alert(b);
    b=parseInt('7abc',8);
    alert(b);
      

  5.   

    如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。