JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换


Posted in Javascript onFebruary 27, 2012

2.7 类型转换
1、转换成字符串

所有对象都有toString()方法可以转换成字符串,要注意的是Number类型的toString()方法,它有两种模式,即默认模式和基模式,采用默认模式toString()方法只是用相应的字符串输出对应的10进制数字值,用基模式可以用不同的基输出数字。示例:

var iNum1=10; 
var iNum2=10.0; 
var iNum3=10; 
alert(iNum1.toString()); //outpus "10" 
alert(iNum2.toString()); //outpus "10" 
alert(iNum3.toString(2)); //outpus "1010" 
alert(iNum3.toString(8)); //outpus "12" 
alert(iNum3.toString(16)); //outpus "A"

2、转换成数字

ECMAScript提供了两种把非数字的原始值转换成数字的方法:parseInt()和parseFloat(),需要注意的是parseInt()是逐个字符转换的,直到非数字字符为止。示例程序如下:

var iNum1=parseInt("1234blue"); //returns 1234 
var iNum2=parseInt("0xA"); //returns 10 
var iNum3=parseInt("22.5"); //returns 22 
var iNum4=parseInt("blue"); //returns NaN

parseInt()方法还有基模式,可以把二进制,八进制,十六进制或其他任何进制的字符串转换成整数。基是由parseInt()第二个参数指定的,示例如下:
var iNum1=parseInt("AF",16); //returns 175 
var iNum2=parseInt("10",2); //returns 2 
var iNum3=parseInt("10",8); //returns 8 
var iNum4=parseInt("10",10); //returns 10 
//注意:如果十进制数有前导0要用基数模式 
var iNum5=parseInt("010"); //returns 8 
var iNum6=parseInt("010",8); //returns 8 
var iNum7=parseInt("010",10); //returns 10

paraseFloat()没有基模式,其他与parseInt()大致相同,示例:
var fNum1=paraseFloat("1234blue"); //returns 1234.0 
var fNum2=paraseFloat("0xA"); //returns NaN 
var fNum3=paraseFloat("22.5"); //returns 22.5 
var fNum4=paraseFloat("22.34.5"); //returns 22.34 
var fNum5=paraseFloat("0908"); //returns 908 
var fNum6=paraseFloat("blue"); //returns NaN

3、强制类型转换

ECMAScript中可用的强制类型转换如下:

Boolean(value)——把给定的值转换成Boolean型

Number(value)——把给定的值转换成数字(可以是整数或浮点数)

String(value)——把给定的值转换成字符串

示例:

var b1=Boolean(""); //false - empty string 
var b2=Boolean("hi"); //true - not empty string 
var b3=Boolean(100); //true - not zero number 
var b4=Boolean(null); //false - null 
var b5=Boolean(0); //false - zero 
var b6=Boolean(new Object()); //true object 
var i1=Number(false); //0 
var i2=Number(true); //1 
var i3=Number(undefined); //NaN 
var i4=Number(null); //0 
var f5=Number("5.5"); //5.5 
var i6=Number("56"); //56 
var i7=Number("5.6.7"); //NaN 
var i8=Number(new Object()); //NaN 
var i9=Number(100); //100

作者:天行健,自强不息
Javascript 相关文章推荐
javascript框架设计之种子模块
Jun 23 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
JS脚本实现动态给标签控件添加事件的方法
Jun 02 Javascript
js单页hash路由原理与应用实战详解
Aug 14 Javascript
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
Node中使用ES6语法的基础教程
Jan 05 Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
es6数值的扩展方法
Mar 11 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
vant 解决tab切换插件标题样式自定义的问题
Nov 13 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
Feb 27 #Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 #Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 #Javascript
JavaScript 代码压缩工具小结
Feb 27 #Javascript
根据邮箱的域名跳转到相应的登录页面的代码
Feb 27 #Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
Feb 27 #Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 #Javascript
You might like
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
Python中使用item()方法遍历字典的例子
2014/08/26 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
python构建深度神经网络(续)
2018/03/10 Python
Django中url的反向查询的方法
2018/03/14 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
python和php哪个更适合写爬虫
2020/06/22 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
英国现代绅士品牌:Hackett
2017/12/17 全球购物
校园安全广播稿
2014/02/08 职场文书
成绩单家长评语大全
2014/04/16 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
SQL SERVER存储过程用法详解
2022/02/24 SQL Server