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 相关文章推荐
js压缩利器
Feb 20 Javascript
jquery 元素相对定位代码
Oct 15 Javascript
jquery 插件学习(五)
Aug 06 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
JS简单获得节点元素的方法示例
Feb 10 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
Sep 30 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 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加密解密字符串汇总
2015/04/26 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
python的列表List求均值和中位数实例
2020/03/03 Python
django 模型字段设置默认值代码
2020/07/15 Python
python缩进长度是否统一
2020/08/02 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
社区十八大感言
2014/01/19 职场文书
物流专员岗位职责
2014/02/17 职场文书
部队万能检讨书
2014/02/20 职场文书
2014国庆节标语口号
2014/09/19 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL