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型。它的输出是:

之后

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

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

如果转换成小数呢

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

它的输出是这样的:

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

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

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

可以很清楚的看到,原来是数字的部分,现在变成了 "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

【JS】我的JavaScript学习之路(6)相关推荐

  1. 【JS】我的JavaScript学习之路(2)

    3.从JavaScript页面解析过程看执行顺序 代码(test.html): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  2. javascript学习之路1

    web发展史 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器.于1993年问世. 1994年11月,Mosaic浏览器的开发人员创建了网景公司(Netscape Communi ...

  3. JavaScript学习之路(WebAPIs阶段)

    WebAPIs阶段 Web APIs 是 W3C 组织的标准 Web APIs 我们主要学习 DOM 和 BOM Web APIs 是我们 JS 所独有的部分 我们主要学习页面交互功能 需要使用 JS ...

  4. javascript学习之路2

    作用域 JavaScript作用域: 就是代码名字在某个范围内起作用和效果 目的是为了提高程序的可靠性 更重要的是减少命名冲突 js的作用域(es6)之前: 全局作用域 局部作用域 全局作用域: 整个 ...

  5. javaScript学习之路(1)词法结构

    1,javascript是区分大小写的语言 (HTML不区分大小写,XHTML区分大小写) 2.注释 行注释 //  段落注释  /*......*/3.直接量: 程序中直接使用的数据值 转载于:ht ...

  6. JavaScript的事件系列二keydown,keypress,获取键码------JavaScript学习之路4

    JavaScript的事件系列二 判断热键shift,ctrl,alt,win shiftkey 当shift按下时为true,默认为false var v = ev || window.event; ...

  7. JavaScript仿淘宝京东放大镜效果(鼠标事件)------JavaScript学习之路10

    JavaScript仿淘宝京东放大镜效果 注意 一定计算好放大比例,本程序放大5倍,具体放大倍数,自定 效果 完整源码 <!DOCTYPE html> <html lang=&quo ...

  8. 【零基础学JS -3】Javascript学习的前情提要(基础概念 最佳实践 命名约定)

  9. 小汤学编程之JavaScript学习day01——认识JS、JS基础语法

    一.认识JS 1.JavaScript的组成     2.浏览器执行js简介     3.JavaScript是什么?     4.扩展内容 二.JS基础语法 1.代码书写位置     2.变量    ...

最新文章

  1. 四十二、开始Vuex的学习:如何在Vue中使用Vuex
  2. C. Number of Pairs
  3. 谷歌插件开发ajax请求,chrome插件 注入js以及发送ajax(message/request)
  4. 服务器oracle优化,oracle服务器配置及优化
  5. poj 2406 还是KMP的简单应用
  6. Centos6.4下zabbix的安装配置
  7. CSS样式表书写位置
  8. 车牌识别算法_向滥用远光灯说不,易泊车牌识别算法了解一下?
  9. 船用雷达x波段和s波段简介
  10. Linux中命令行进行WiFi连接(零基础详解)
  11. python自回归模型_向量自回归模型(VAR)到底厉害在哪里?
  12. 【bzoj4200】【NOI2015】【小园丁与老司机】【dp+最小流】
  13. 算法岗面经总结(快看漫画)
  14. 解决tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0,32] = -1 is not in [0, 50)
  15. 微信小程序 用户登录界面,用户名无法切换输入法问题解决方法
  16. 中职教资计算机网络面试,2018下半年教师资格证面试:中学信息技术教案《计算机网络的组成》...
  17. 斐波那契数的时间复杂度、空间复杂度详解
  18. 如何抓取淘宝天猫上多个宝贝商品图片视频素材
  19. 【淘宝开店经验分享】产品标题优化技巧
  20. 计算机考上研究生暑假去哪里实习_大三计算机专业学生怎么找实习?

热门文章

  1. 006_Buzz属性和组
  2. 011_html标题
  3. bat循环执行带参数_dos命令exit图文教程,结束退出CMD.EXE程序或当前bat批处理脚本...
  4. Mysql根据日期查询
  5. 一些java面试高频题
  6. 联想无线网卡 linux驱动,ubuntu14.04手动安装博通官方无线网卡驱动时报错,
  7. 华为emui10是鸿蒙,昨日,华为EMUI10,鸿蒙系统正式发布!
  8. linux+历史命令',Linux历史命令管理以及用法
  9. Netty详解(三):Netty 入门应用
  10. php 算年龄,PHP计算年龄、