在JS里有3个函数可以将非数值转换为数值
Number()
转换规则
如果是Boolean值,true和false将分别转换为1和0;
如果是数字值,只是简单的传入和返回;
如果是null值,返回0;
如果是undefined,返回NaN;
如果是字符串,则遵循以下规则
如果字符串中只包含数字,则将其装换为十进制数值;
如果字符串中包含有效的浮点个事,则将其装换为相应的浮点数;
如果字符串中包含有效的十六进制格式,则将其转换为相同大小的十进制数字;
如果字符串为空则将其转换为0;
如果字符串包含以上规则以外的字符,则将其转换为NaN;
例子:
var num1 = Number(“hello world”); //NaN
var num2 = Number(“”) //0
var num3 = Number(“000011”)//11
var num4 = Number(“true”)//1
ParseInt()
ParseInt()在转换字符串的时候,更多的是看其是否符合数值模式,他会忽略字符串前导的空格,知道找到第一个非空格字符。如果第一个字符不是数字字符或者是符号,ParseInt()就会返回NaN;也就是说,用ParseInt()装换空字符不会返回0,而是返回NaN,如果第一个字符是数字字符那么会继续解析第二个字符,直到遇到非数字字符。例如“1234blue”会解析为1234,因为blue会完全忽略。ParseInt()能够自动识别各种进制,也可以主动传入进制,会解析为相应数值的是进制数;
例子:
var num1 = ParseInt(“1234blue”);//1234
var num2 = ParseInt(“”)//NaN
var num3 = ParseInt(“0Xa”);//10 十六进制数
var num4 = ParseInt(“070”);//56 八进制数
ParseFloat()与ParseInt()类似。一直解析到字符串末尾或者遇到第一个非浮点数数字字符为止.
总结:
Number()可以用于任何类型向数值的转换,ParseInt()和ParseFloat()则专门用于字符串向字符的转换.
JS的数值转换
最新推荐文章于 2024-08-27 17:21:26 发布