一、字符串转换为数字:
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.所以在比较前需要将它们各自的值转换为Number类型。
主要的方法有三种:
转换函数、强制类型转换、利用js变量弱类型转换。
1.转换函数parseInt()和parseFloat();
parseInt(str):将字符串类型转换为整型,当函数的参数不是字符串时,函数返回NaN(Not a Number);
parseFloat(str): 将字符串类型转换为浮点型,当函数的参数不是字符串时,函数返回NaN(Not a Number);
注1:凡是一切表示数的形式的字符串都可以通过上面的两个函数转化为数字,例如:
普通的数字 : parseInt('123') // 123
浮点数 : parseInt('123.45') // 123
十六进制数:parseInt('0x11') // 17
科学计数法: parseInt('3e12') // 3; parseInt('13e12') // 13;
注2:parseInt()函数支持十六进制形式的字符串转换为整型,但是parseFloat()函数不支持十六进制形式的字符串转换为浮点型,但是会返回数字0.原因是parseFloat()函数将参数为十六进制的字符串 "0x11"的第一个字符零(0)看做数字,将其他的忽略。
2.强制类型转换
可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
3. 利用js变量弱类型转换
二、数字转换为字符串
强制类型转换、利用js变量弱类型转换
1.强制类型转换:String(value)——把给定的值转换成字符串。
2.利用js变量弱类型转换:数字+字符串 // 123+"456"------>"123456"