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。

参考链接:Number( )、parseInt( )、parseFloat( )的用法及区别

posted @ 2022-02-22 10:58  晨米酱  阅读(93)  评论(0)    收藏  举报