【JS】我的JavaScript学习之路(6)

11.数据类型之间的转换

由之前的例子我们可以看出,当我们直接把数值和字符串加在一起的时候,JavaScript会直接把数值转换成字符串输出。一般来说,在JavaScript中这种数据类型自动转换是不会出错的,但是也有的时候我们需要进行一些特定的转换,比如我们用表单接收数据的时候,我们得到的数据都是以字符串形式出现的,如果我们需要整数或者小数神马的,就需要转换数据类型了。

例如,如果你用表单收集了"22"和"15"两个字符串,你想把他们加和,如果直接"22"+"15"就成了"2215"了,因为表单收到的默认就是string类型。这里我们可以通过两个函数parseInt()和parseFloat()来将字符串转换成数值。

示例代码(ch2_example7.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>ch2_example7</title>
    </head>
    <body>
        <script type="text/javascript" language="JavaScript">
            var myString = "56.02 degrees centigrade";
            var myInt;
            var myFloat;
            
            document.write("\"" + myString +"\" is " +parseInt(myString) + "as an integer" + "<br>");
            
            myInt = parseInt(myString);
            document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br/>");
            
            myFloat = parseFloat(myString);
            document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat);
        </script>
    </body>
</html>

定义了一个叫myString的字符串,这是一个含有数值的字符串。

document.write("\"" + myString +"\" is " +parseInt(myString) + " as an integer" + "<br>");

这里用了转义符号\来输出双引号。用parseInt(myString)来转换字符中的数值,将数值转换成Int型。它的输出是:

【JS】我的JavaScript学习之路(6)

之后

myInt = parseInt(myString);
document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br/>");

将转换出来的Int型数值输出:

【JS】我的JavaScript学习之路(6)

如果转换成小数呢

myFloat = parseFloat(myString);
document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat);

它的输出是这样的:

【JS】我的JavaScript学习之路(6)

由此看来,parseXX()函数,是一个可以自动从字符串中找出数值信息,转换成数值变量的一类函数。

 

12.处理不能转换的字符串

在上面的实例中,如果我们把myString改成"I’m not a number",也就是说,在字符串中不出现任何数字,那么它的输出就变成了这个样子:

【JS】我的JavaScript学习之路(6)

可以很清楚的看到,原来是数字的部分,现在变成了 "NaN" 。那么,NaN是啥?

NaN 就是 Not a Number.

如果被转换的字符串里面没有数值,那么,它就是NaN。这是JavaScript当中的一个特殊值。它拥有自己的函数 isNaN() , 它是用来检测某个值是否为NaN。

myVar1 = isNaN("Hello");

myVar1中存储的就是布尔型的True,因为"Hello"不是数值。然而:

myVar2 = isNaN("34");

myVar2中存储的就是布尔型的False,因为"34"可以成功的被转换为数值型的34。

如果我们在转换时使用了不可转换的字符串,那么原本应该出现数字的位置就会显示NaN。所以为了避免此类问题,在转换之前我们需要用isNaN()函数来检测数据。

转载于:https://www.cnblogs.com/zerolin/archive/2012/08/21/2649903.html

上一篇:C++(三十八) — 字符串的函数重载—案例


下一篇:自己实现一个 String 类