js中的数值转换Number(),parseInt(),parseFloat详解

2017-9-27 23:11:57 4,541 views
有3个函数可以把非数值转换为数值:Number(),paresInt(),parseFloat();
Number()可以用于任何数据类型,
paresInt(),parseFloat()专门用于把字符串转换成数值

Number()函数的转换规则

如果是布尔值,true,false分别转换为1,0
如果是数字值,只是简单的传入和返回。
如果是null值,返回0.
如果是undefined,返回NaN
如果是字符串,
<1>如果字符串中只包含数字,则将其转换为十进制数值
<2>如果包含有效的浮点格式,则将其转换为对应的浮点数值
<3>如果字符串包含有效的十六进制格式,0x_,则转换为十进制整数值。
<4>如果字符串是空的,则转换为0
<5>如果包含上述之外的字符,则将其转换为NaN.
如果是对象,则调用对象的valueOf()方法,然后依照前面的规则进行转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,然后返回依据规则返回对应值。

一元加操作符的操作与Number函数相同

var s1="01";
var s2="1.1";
var s3="z";
var b=false;
var f=1.1;
var o={
valueOf:function(){
return -1;
}
};
s1=+s1;//变成数值1
s2=+s1;//变成数值1.1
s3=+s3;//值变成NaN
b=+b;//变成数值0 b=-b;//0
f=+f;//值未变,仍然是1.1
o=+o;//变成数值-1;

 

parseInt()

parseInt()函数在转化字符串时,更多的是看起是否符合数值模式,它会忽略字符串前面的空格,直至找到一个非空格字符。
<1>如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN
<2>用parseInt()转换空字符串会返回NaN()。
alert(parseInt(""));//NaN
<3>如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
alert(parseInt("22.5"));//22小数点不是有效数字
alert(parseInt("1234blue2"));//1234
alert(parseInt(""));//NaN
alert(parseInt("0xA"));//10(16进制)
alert(parseInt("070"));//70
alert(parseInt("70"));//70
alert(parseInt("0xf"));//15(16进制数)
可以用第二参数来指定转换时使用的基数。
parseInt("10",2)//按2进制解析

parseFloat()

从位置0开始解析每个字符,而且也是一直解析到字符串末尾,或者解析遇到一个无效的浮点数字字符为止。
除了第一个小数点有效之外(第二个小数点无效),第二个区别在于它始终都会忽略前导的0,可以识别十进制整数格式,但是它没有第二个参数指定基数的用法。
parseFloat()中十六进制格式的字符串始终会被转换成0
alert(parseFloat("22.5"));//22.5
alert(parseFloat("1234blue2"));//1234
alert(parseFloat(""));//NaN
alert(parseFloat("0xA"));//0(16进制)
alert(parseFloat("22.5.3"));//22.5
alert(parseFloat("3.125e7"));//31250000
alert(parseFloat("0xf"));//0(16进制数)
-----------------------------------------分割线----------------------------------
Number(),parseInt(),parseFloat()小结
Number() 可以用于任何数据类型,
//要注意的点,
1>null值和空字符串都转为0,
2>undefined和其他不符合的字符串都转为NaN
3>对象先按valueOf(),后按toString()
parseInt(),parseFloat()用于将字符串转换为数字
//parseInt()
1>如果第一个字符不是数字或者符号就返回NaN
2>空字符串返回NaN
3>小数点不是有效的
4>第二参数可以指定基数
//parseFloat()
1>第一个小数点有效,第二个无效
2>十六进制格式的字符串始终会被转换成0
3>没有第二参数
2

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。