在表达式中使用变量时,JavaScript会自动地将一种类型值变成另一种类型。也就是说在表达式中可有不同类型的数据组合,JavaScript在运算时完成使表达式有意义所必需的类型转换。在JavaScript中类型的转换是按其运算的优先级进行的,一般来说,字符串运算的优先级较高,然后依次是浮点运算、整型运算和逻辑运算。
例如:表达式"test"+5,先将数字5转换成字符串"5",并附加到字符串"test"后面,结果为test5
parseInt 转换成整数.
parseFloat 转换成浮点数
parseFloat()函数:类似于parseInt()函数,它返回字符串上包含的第一个浮点数。如果字符串不以有效浮点数开头,则返回0。
例如:parseFloat("2.1e4xyz")返回21000;而parseFloat("xyz")返回0。
基本数据类型转换的三种方法:
1.转换为字符型:String(); 例:String(678)的结果为"678"
2.转换为数值型:Number(); 例:Number("678")的结果为678
3.转换为布尔型:Boolean(); 例:Boolean("aaa")的结果为true
从一个值中提取另一种类型的值的方法:
1.提取字符串中的整数:parseInt(); 例:parseInt("123zhang")的结果为123
2.提取字符串中的浮点数:parseFloat(); 例:parseFloat("0.55zhang")的结果为0.55
3.执行用字符串表示的一段javascript代码:eval(); 例:zhang=eval("1+1")的结果zhang=2
注:eval()函数:将字符串表达式转换成数字值。例如,语句total=eval("432.1*10")的结果是total=4321即将数值4321赋予total变量。
在下面的例子中,执行加法运算时,数字值被转换成了字符串值;而执行乘法运算时,字符串值转换为NaN(非数)。
< html >
< head >
< title > 特殊字符的显示 </ title >
</ head >
< body >
< script language = "JavaScript" type = "text/javascript" > ...
<!--
var myString = "test";
var num = 1;
document.write(myString + num); document.write("<br/>");
document.write(num + myString); document.write("<br/>");
document.write(myString * num); document.write("<br/>");
document.write(num * myString);
// -->
</ script >
</ body >
</ html >
在IE中的显示结果如下图所示。
在以上示例中,由于“+”操作符既可以进行数字运算,也可以进行字符串运算(相当于字符串的拼接),因此按优先顺序进行字符串运算;而“*”操作符只能对数值进行操作。那么字符串乘一个数有什么意义呢?没有意义。此时,字符串值被转换为“非数”NaN,数字与NaN相乘,结果当然还是“非数”NaN。
什么是NaN呢?NaN即“Not a Number”,即“不是一个数”。当运算无法返回正确的数值时,就会返回“NaN”值。NaN值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至NaN本身也不等于NaN。
parseInt()函数:把字符串转换成整数。返回是从字符串的第一个字符开始,如果字符不是以整数开头则返回0。parseInt()函数还可以转换十六进制数或十进制数。
例如:parseInt("123xyz") 返回123,而parseInt("xyz")返回0。