在js读取文本框或者其它表单数据嘚时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转數字的文章,这个比较全
转换函数、强制类型转换、利用js变量弱类型转换
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数后者把值转换成浮点数。只有对String类型调用这些方法这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。
parseInt()方法还有基模式可以把二进制、八进制、十六進制或其他任何进制的字符串转换为数字成整数。基是由parseInt()方法的第二个参数指定的示例如下:
如果十进制数包含前导0,那么最好采用基數10这样才不会意外地得到八进制的值。例如:
使用parseFloat()方法的另一不同之处在于字符串必须以十进制形式表示浮点数,parseFloat()没有基模式
还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:Boolean(value)——把给定的值转换成Boolean型;Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串
用这三个函数之一转換值,将创建一个新值存放由原始值直接转换成的值。这会造成意想不到的后果
当要转换的值是至少有一个字符的字符串、非0数字或對象(下一节将讨论这一点)时,Boolean()函数将返回true如果该值是空字符串、数字0、undefined或null,它将返回false
可以用下面的代码段Boolean型的强制类型转换。
Number()的強制类型转换与parseInt()和parseFloat()方法的处理方式相似只是它转换的是整个值,而不是部分值示例如下:
最后一种强制类型转换方法String()是最简单的,示唎如下:
3. 利用js变量弱类型转换
举个小例子一看,就会明白了
上例利用了js的弱类型的特点,只进行了算术运算实现了字符串到数字的類型转换,不过这个方法还是不推荐的