parseInt() parseFloat()

两者都是从位置0开始查看,直到非有效数字位置,再把有效的部分转成整数或者浮点数。

但是parseInt()可以带参数,指定二进制、八进制或者十六进制(默认十进制),可以解析八进制数如“010”、十六进制数“0x10”,而parseFloat()不带参数,不能解析八进制、十六进制数。

八进制数是以0开头,parseInt()对于有前导0的会解析成八进制数,而parseFloat()不会解析八进制数,因此八进制数都会被解析成10进制输出且输出时忽略前面的0

 十六进制数是以0x开头,parseInt()会解析成十六进制数,而parseFloat()不会解析十六进制数,就跟“123db”这种类似,从头开始查看,到非有效数字位置为止,把前面的有效部分转成十进制,也就是说所有十六进制数都会被转成0

另外,parseInt() parseFloat()对于"123db"这种可以部分转换,转成数字123,而Number()就会认为是NaN,因为整个字符串不能完整转化为数字。

 

FFChromeIE8Opera下测试parseInt(“0xA”)均得到0,今天看书看到书上写的返回NaN,错啦……不过该书第二版已经做了更正哈哈。

 

posted on 2010-10-22 22:20  水忧狐  阅读(1835)  评论(0编辑  收藏  举报