Number、parseInt和parseFloat的比较
| 类型 | Number | parseInt | parseFloat | 
|---|---|---|---|
| 参数 | 1个:any | 2个:string,number(进制参数) | 1个:string | 
| 返回类型 | number | number | number | 
| Boolean | true转1,false转0 | NaN | NaN | 
| Null | 0 | NaN | NaN | 
| Undefined | NaN | NaN | NaN | 
| String | 空字符串转0; 字符串是十六进制的格式,将会按照进制规则转成十进制格式 | 空字符串转NaN; 格式如'123d',会转换成123(Number会转NaN); 按照第二个(进制)参数解析字符串,最终得到的 参数是十进制的格式 | 空字符串转NaN; 格式如'12e2',会按照科学计数法进行转换后再转换成1200(parseInt转12) '0xf'转0(parseInt看第二个参数,如果是16转15,如果是10转0...) | 
| Number | 正常转换 | 数字转换,将浮点数转成整数; 数字进行运算得到结果(十进制), 转成字符串格式,再然后根据第二个 (进制)参数转成数字(十进制格式),例子如下 | 正常转换 | 
| Object | 先调用对象的valueOf(),其返回值按照上面的的规则进行匹配, 结果为NaN时再调用对象的toString(),处理方式与valueOf相同, 如果都是NaN则返回NaN,如果返回的都是对象类型,将会报错 | 会调用对象的toString(),按照上面的规则进行匹配 | 会调用对象的toString(),按照上面的规则进行匹配 | 
parseInt(0xf,16)//21,先根据16进制将0xf转换成15,调用toString方法转成'15',最后根据16进制转换成21
parseInt(10.111.1,10) //报错:missing ) after argument list,(10.111.1无法采用toString转换成字符串格式)
parseFloat(0xf)//21
parseFloat('0xf')//0,不能正常解析除十进制以外的字符串形式的进制数
Number()、parseInt()、parseFloat()区别总结起来就是:
1.参数上:Number()、parseFloat都只有一个数据源参数;()parseInt()多一个进制处理的参数。
2.处理浮点数:parseInt()会取整;Number()、parseFloat()不会。
3.处理机制:Number处理数据时发现非数字(不包括正、负号)就会返回NaN;parseInt只要在数据开头发现数字就不会返回NaN。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号