- Number()可以转换任何对象,后两者是针对字符串转数值
- 有效的八进制,则输出对应的十进制
- 有效的十六进制,还是输出对应的十进制
- -->仅包含数字,转换成数字
- Number('01113444') -> 1113444(前面的0忽略)
- Number('011') -> 11 (不会转换成8进制)
- -->有效的浮点数,转换成对应的浮点值
- Number('01.189') -> 1.189
- Number('1.20') -> 1.2 (前后0 都忽略)
- --> 有效的16进制,转换成对应的10进制
- Number( '0xa') -> 10
- --> 空字符串(不包含任何字符)
- Number('') -> 0
- Number(' ') -> 0
- --> 其他管他是啥,都是NaN
- Numer('we121') -> NaN
6.对象 先调用valueOf,如果是NaN 再调用toString() (还在研究)
<相同点>:
所以呀! parseFloat(01.22) 试试 就报错了~
- --> 以0开头,满足8进制,都将从8进制数字转换成10进制(默认),不是8进制,那就不是咯。。
- parseInt(011) -> 9
- parseInt(099) -> 99
- parseInt(01299) -> 1299
- 那么 parseInt('010') ->????
- 答案 是 不确定......可能是10 也可能是 8...
- <span style="color:red;">注</span>:旧浏览器由于使用旧版本的ECMAScript(ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制),所以都有可能咯,看浏览器咯
- --> 以0x开头,满足16进制的格式,都将从16进制数字转换成10进制的(默认),不是16进制,那就不是咯。。
- parseInt(0xa) -> 10
- parseInt(0xgg) 就报错咯
- parseInt(string, radix) || parseFloat(string, radix)
- parseInt('011', 8) -> 9
<不同点>:
如果第一个字符不是数字、负号或者. ,parseFloat返回NaN
- 特殊的: < b style = "color:green" > parseInt('') - >NaN < /b>
- parseInt('js121') -> NaN/
2.parseFloat忽略前导零和后面的0
- parseFloat('.11') - >0.11
- parseFloat('011.1000') - >11.1
先写这么多,再补充
来源: http://blog.csdn.net/y_g_g/article/details/78031510