html语言强制转换成整型,JavaScript数据类型转换

JavaScript是一种“弱”类型的语言,这就是说,程序中不需要十分关注变量中存储数据的类型。例如可以在一条语句中将一个数值赋值给变量x,在另一条语句中把一个字符串在赋值给同一个变量;也可以将数值与字符串进行比较,将字符串与布尔型数据进行比较。在变量赋值和表达式的计算过程中,JavaScript会根据需要自动完成数据类型的转换。在包括多种类型的混合表达式中,JavaScript必须决定如何处理这个表达式中的各种数据类型。

除了需要将字符串类型转换为数值类型之外,有时候也需要将数值类型转换为字符串类型,或其它数据类型之间进行数据类型的转换。例如,某些对象方法要求一个活多个特定数据类型的的参数,为了正确的使用这些方法,就需要完成适当的数据类型转换工作。

为了适应不同的情况,JavaScript提供了两种数据类型的转换方法:一种使将整个值从一种类型转换为另一种数据类型(称为基本数据类型转换),另一种方法是从一个值中提取另一种类型的值,并完成类型转换工作。完成后一张数据类型转换的方法有三个:parseInt()、ParseFloat()和eval()。

基本数据类型转换

JavaScript提供了三个方法实现基本数据类型之间的转换。

String():将其他数据类型的值转换为字符串,例如:String(123)的值为"123"。

Number():将其他类型的值转换为数值类型的值,例如:Number(true)的值为1。

Boolean():将其他类型的值转换为布尔型的值,除了0、NaN、null、undefined、""(空字符串)被转换为false之外,所有其他的值都被转换为true。

这三个方法实际上是同名对象的构造函数。

提取整数的parseInt()方法

parseInt()方法将字符串转换为整数。其转换过程为:从字符串第一个字符开始读取数字(跳过签到的空白符),知道遇到非数字字符时停止读取,然后将已经提取的数字字符串转换为整数,并返回该整数值。如果字符串的开始位置不是数字,而是其他字符(空白符除外),那么parseInt()方法返回NaN,表示所传递的参数不能转换为一个整数。例如:parseInt("100days")的返回值为100,parseInt("days100")的返回值为NaN。

parseInt()方法还能够完成八进制和十六进制数据的转换。此时,parseInt()方法需要传入两个参数:第一个是参数要转换为整数的字符串,第二个参数指定按多少进制进行转换,进制的有效范围为2-36,其中包括二进制、八进制、十进制和十六进制。当省略第二个参数时,按十进制进行转换。但是如果字符串以0x或0X开头,那么按十六进制进行转换。不论指定哪一种进制进行整数转换,方法parseInt()总是以十进制值返回结果。

parseInt()方法是JavaScript的全局函数,它的语法格式为:

parseInt(String);

parseInt(String,NumberBase);

其中String是指定要转换为整数的字符串,NunberBase指定按几进制进行转换,范围从0-36。

下表中是parseInt(String)方法的应用示例:

参数值

parseInt()返回值

参数值

parseInt()返回值

"100china"

100

"china100"

NaN

"-100china"

-100

"china"

NaN

"100.55china"

100.55

".63"

NaN

" &nabsp;100china"

100

"0Xa"

10

"100.65"

100

"0xa"

10

"0.63"

0

"0x12abc"

76476

下面是parseInt(String,NumberBase)语法格式的应用示例:

调用格式

进制数

函数返回值

parseInt("55china",8)

八进制

45

parseInt("55china",16)

十六进制

1372

parseInt("55china",10)

十进制

55

parseInt("55china",36)

三十六进制

11207215270

parseInt("0x55china",8)

八进制

0

parseInt("0x55china",16)

十六进制

1372

parseInt("55.23china",8)

八进制

45

parseInt("china55",8)

八进制

NaN

parseInt("china55",16)

示例进制

12

提取浮点数的parseFloat()方法

parseFloat()方法与parseInt()方法相似,不同之处在于parseFloat()方法能够治好浮点数,而parseInt()方法只能治好整数。浮点数包含小数部分,如1.23,0.56等,科学计数法书写的数也算浮点数,比如2E3。如果字符串不是以数字开头,那么parseFloat()方法返回NaN。

调用parseFloat()方法的语法格式为:

parseFloat(String);

下面的表格中列出了parseFloat()方法的一些应用示例:

参数值

parseFloat()返回值

参数值

parseFloat()返回值

"55.2china'

55.2

china55.2

NaN

"-55.2china"

-55.2

"china"

NaN

"55.63china"

55.63

".63"

0.63

"  55.2china"

55.2

"3e2"

300

"55.63"

55.63

"-3e-2"

-0.03

"0.63"

0.63

"3e2abc"

300

用于执行语句和计算表达式的eval()方法

eval()方法能够执行用字符串表示的一段JavaScript代码,比如,执行下面的语句:

eval("k=0,for(i=1;i<101;i++){k+=i;}");

执行后的结果为5050。利用eval()方法的这种特性,程序可以根据需要动态的生成并执行语句,这样可以进一步增强JavaScript程序执行的能力。

表达式是JavScript的一种特殊语句,eval()方法也能够用于计算表达式的值,这时,表达式以字符串形式传递给eval()方法,例如,执行下面的语句:

rs=eval( "(9+5)*2" );

结果变量rs的值为28。

如果传递给eval()方法中的参数的语句中没有返回值,那么eval()方法返回undefined,例如:

eval("var abc");//返回undefined

如果传递给eval()方法中的参数不是有效的JavaScript语句,那么就会产生运行错误。例如:

eval("abc");

eval()方法的语法格式为:

eval(String);

其中,String是由JavaScript语句或表达式组成的一个字符串。需要注意的是,这里的String只能是基本数据类型中的字符串,而不能是String对象。否则,eval()方法直接返回参数字符串,而不是字符串表示的语句。例如下面的代码:

rs = new String("2+3*6-3");

a = eval(rs);

上面代码执行后,rs是一个String对象,a的值为字符串"2+3*6-3",而不是这个表达式计算的结果17。如果将上面的语句修改为:

rs = "2+3*6-3";

a = eval(rs);

执行后,rs是一个基本数据类型的字符串,a的值为17。

最后需要注意的是eval()方法存在一些安全方面的隐患,在实际应用中切记不可滥用。

你可能感兴趣的:(html语言强制转换成整型)