强制转换

来源:互联网 发布:现代网络女作家排行榜 编辑:程序博客网 时间:2024/04/28 01:22

表达式中操作项的数据类型相同时 JScript 解释器才能对其求值。如果表达式不经过强制转换就试图对两个不同的数据类型(如一个为数字,另一个为字符串)执行运算,将产生错误结果。但在 Jscript 中情况就不同了。

JScript 是一种自由类型的语言。它的变量没有预定类型(相对于强类型语言,如 C++)。相反,JScript 变量的类型相应于他们包含的值的类型。这种操作的好处是能将值作为另一类型处理。

Jscript 中,可以对不同类型的值执行运算,不必担心 JScript 解释器产生异常。相反,JScript 解释器自动将数据类型之一改变(强制转换)为另一种数据类型,然后执行运算。例如:

运算

结果

数值与字符串相加

将数值强制转换为字符串。

布尔值与字符串相加

将布尔值强制转换为字符串。

数值与布尔值相加

将布尔值强制转换为数值。

 

考虑下面的示例。

var x = 2000;      // 一个数字。

var y = "Hello";   // 一个字符串。

x = x + y;         // 将数字强制转换为字符串。

document.write(x); // 输出 2000Hello

要想显式地将字符串转换为整数,使用 parseInt 方法。要想显式地将字符串转换为数字,使用 parseFloat 方法。请注意,比较大小时字符串自动转换为相等的数字,但加法(连接)运算时保留为字符串。

 

函数parseFloat(numString)  parseInt(myString)
功能parseFloat 方法返回与 numString 中保存的数相等的数字表示。如果 numString 的前缀不能解释为浮点数,则返回 NaN (而不是数字)。
       function test()

       {

              var myString="123.001";

              var w=parseFloat(myString);

              var z=parseInt (myString);

             

              alert("z="+z);

              alert("w="+w);

       }