详解ECMAscript提供的类型转换方法

ECMAscript提供了两种把非数字的原始值转换为数字的方法即 parseInt()和parseFloat()
第一个方法可以把所有的值转换成整数,第二个可以把所有的值转换成浮点数,但是 大前提只有对
字符串类型的调用这个方法,才可以正确运行,其他类型将会返回NaN。
parseInt()
在判断字符串是否是数字之前,parseInt()和parseFloat()都会仔细分析该字符串。
parseInt 首先查看位置0处的字符,判断它是否是一个有效字符,如果不是将 返回NaN,不再
继续往后执行。但是如果该字符是有效数字将继续查看 1位置的字符,进行同样的测试,这
一过程持续到发现非有效数字的字符为止。此时 parseInt()将该字符之前的字符串转化为数字
(转化为数字之后返回查询到的数字)。
例如,如果要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。
字符串中包含的数字字面量会被正确转换为数字,比如 "0xA" 会被正确转换为数字 10。不过,字符串 "22.5" 将被转换成 22,因为对于整数来说,小数点是无效字符。
一些示例如下:
var iNum1 = parseInt("12345red"); //返回 12345var iNum1 = parseInt("0xA"); //返回 10var iNum1 = parseInt("56.9"); //返回 56var iNum1 = parseInt("red"); //返回 NaN
parseFloat()
parseFloat() 方法与 parseInt() 方法的处理方式相似,从 位置 0 开始查看每个字符,
直到找到 第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。
不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个
小数点将被看作无效的。parseFloat() 会把这个 小数点之前的字符转换成数字。这意味
着字符串 "11.22.33" 将被解析成 11.22。
下面是使用 parseFloat() 方法的一些示例:
var fNum1 = parseFloat("12345red"); //返回 12345var fNum2 = parseFloat("0xA"); //返回 NaNvar fNum3 = parseFloat("11.2"); //返回 11.2var fNum4 = parseFloat("11.22.33"); //返回 11.22var fNum5 = parseFloat("0102"); //返回 102var fNum1 = parseFloat("red"); //返回 NaN


你可能感兴趣的:(详解ECMAscript提供的类型转换方法)