【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型。它的输出是:
之后
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)相关推荐
- 【JS】我的JavaScript学习之路(2)
3.从JavaScript页面解析过程看执行顺序 代码(test.html): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- javascript学习之路1
web发展史 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器.于1993年问世. 1994年11月,Mosaic浏览器的开发人员创建了网景公司(Netscape Communi ...
- JavaScript学习之路(WebAPIs阶段)
WebAPIs阶段 Web APIs 是 W3C 组织的标准 Web APIs 我们主要学习 DOM 和 BOM Web APIs 是我们 JS 所独有的部分 我们主要学习页面交互功能 需要使用 JS ...
- javascript学习之路2
作用域 JavaScript作用域: 就是代码名字在某个范围内起作用和效果 目的是为了提高程序的可靠性 更重要的是减少命名冲突 js的作用域(es6)之前: 全局作用域 局部作用域 全局作用域: 整个 ...
- javaScript学习之路(1)词法结构
1,javascript是区分大小写的语言 (HTML不区分大小写,XHTML区分大小写) 2.注释 行注释 // 段落注释 /*......*/3.直接量: 程序中直接使用的数据值 转载于:ht ...
- JavaScript的事件系列二keydown,keypress,获取键码------JavaScript学习之路4
JavaScript的事件系列二 判断热键shift,ctrl,alt,win shiftkey 当shift按下时为true,默认为false var v = ev || window.event; ...
- JavaScript仿淘宝京东放大镜效果(鼠标事件)------JavaScript学习之路10
JavaScript仿淘宝京东放大镜效果 注意 一定计算好放大比例,本程序放大5倍,具体放大倍数,自定 效果 完整源码 <!DOCTYPE html> <html lang=&quo ...
- 【零基础学JS -3】Javascript学习的前情提要(基础概念 最佳实践 命名约定)
- 小汤学编程之JavaScript学习day01——认识JS、JS基础语法
一.认识JS 1.JavaScript的组成 2.浏览器执行js简介 3.JavaScript是什么? 4.扩展内容 二.JS基础语法 1.代码书写位置 2.变量 ...
最新文章
- 四十二、开始Vuex的学习:如何在Vue中使用Vuex
- C. Number of Pairs
- 谷歌插件开发ajax请求,chrome插件 注入js以及发送ajax(message/request)
- 服务器oracle优化,oracle服务器配置及优化
- poj 2406 还是KMP的简单应用
- Centos6.4下zabbix的安装配置
- CSS样式表书写位置
- 车牌识别算法_向滥用远光灯说不,易泊车牌识别算法了解一下?
- 船用雷达x波段和s波段简介
- Linux中命令行进行WiFi连接(零基础详解)
- python自回归模型_向量自回归模型(VAR)到底厉害在哪里?
- 【bzoj4200】【NOI2015】【小园丁与老司机】【dp+最小流】
- 算法岗面经总结(快看漫画)
- 解决tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0,32] = -1 is not in [0, 50)
- 微信小程序 用户登录界面,用户名无法切换输入法问题解决方法
- 中职教资计算机网络面试,2018下半年教师资格证面试:中学信息技术教案《计算机网络的组成》...
- 斐波那契数的时间复杂度、空间复杂度详解
- 如何抓取淘宝天猫上多个宝贝商品图片视频素材
- 【淘宝开店经验分享】产品标题优化技巧
- 计算机考上研究生暑假去哪里实习_大三计算机专业学生怎么找实习?
热门文章
- 006_Buzz属性和组
- 011_html标题
- bat循环执行带参数_dos命令exit图文教程,结束退出CMD.EXE程序或当前bat批处理脚本...
- Mysql根据日期查询
- 一些java面试高频题
- 联想无线网卡 linux驱动,ubuntu14.04手动安装博通官方无线网卡驱动时报错,
- 华为emui10是鸿蒙,昨日,华为EMUI10,鸿蒙系统正式发布!
- linux+历史命令',Linux历史命令管理以及用法
- Netty详解(三):Netty 入门应用
- php 算年龄,PHP计算年龄、