js 数据类型转换总结笔记


Posted in Javascript onJanuary 17, 2011

javascript有如下数据类型的转换方法:
一,转换成数字 xxx*1.0
转换成字符串 xxx+""
二,从一个值中提取另一种类型的值,并完成转换工作。
.提取字符串中的整数:parseInt();
例:parseInt("123zhang")的结果为123
.提取字符串中的浮点数:parseFloat();
例:parseFloat("0.55zhang")的结果为0.55
.执行用字符串表示的一段javascript代码:eval();
例:zhang=eval("1+1")的结果zhang=2
. 转换成字符串: toString() ;
例:zhang=eval("1+1")的结果zhang=2
三,是将整个值从一种类型转换为另一种数据类型(称作基本数据类型转换),
基本数据类型转换的三种方法:
.转换为字符型:String() ; 例:String(678)的结果为"678"
.转换为数值型:Number() ; 例:Number("678")的结果为678
.转换为布尔型:Boolean() ; 例:Boolean("aaa")的结果为true

使用这些方法时,如有必要,尽量对参数和 方法的执行进行判断和异常处理操作。
有在参考文档中看到,如下关于执行效率的总结:
在IE 下,第一种速度最快,第二种次之,第三种最差,但差距不过10万次,差几十百来毫秒而已。
在FF下,第一种和第二种基本上相当,第三种最慢。
速度差别基本上可以忽略。因为差距很小。
但是,从代码的简洁性, 第一种明显写法简便,而且也易读,
而且不会出现第二种的 因为 某个对象没有 toString 方法而报错的问题。况且他始终也是最快的。
所以,个人习惯使用第一种方式来完成数据类型的转换
但是,比如需要“123456abcd”来提取其中的数字,那自然当用parsetInt,和parseFloat之类的函数。
但是要注意,有时候 转换的结果是 NaN 等,需要判断一下。

例异常处理如 :

//执行文本框内的语句,用eval 返回语句执行后的值 
function doFunction(str) { var result = str.replace(new RegExp("\"", "gm"), ""); 
//判断语句是否合法 
var reg = /\s*[A-Za-z]+\s*\('.+'\)\s*$/; 
if (result.match(reg)) // 或者用 reg.test(result); 方法判断 
try { 
result = eval(result); 
return result; 
} 
catch (Error) { 
alert("抱歉!语句无法执行转化。注意语法和拼写。"); 
return; 
} 
else alert("请检查数据类型转换语句的格式及语法!"); 
}

有关数据转换方法的其他测试示例如下:
例  句 结  果
parseInt('1234') 1234
parseInt('1234.00') 1234
parseInt('1234abc') 1234
parseInt('abc1234') undefined(转换失败)
parseFloat('1234.123') 1234.123
parseFloat('1234.123a') 1234.123
parseFloat('a1234.123') NaN
Number('1234.123') 1234.123
Number('1234.123aa') NaN
String(eval('12+10')) 22
Boolean('0'),Boolean('567'),Boolean(567) true
Boolean(null),Boolean(false),Boolean(0),Boolean(''),Boolean() false
this.toString() [object]
(typeof(this)).toString() object
eval('12+34') 46
eval('12+34')+'' 46
eval('12+34')*1.0 46
typeof(eval('12+34')*1.0) number
typeof(eval('12+34')+'') string

注:测试时的环境是 vs2008,ie8...,是在页面上输入的语句,js里用eval处理上表中左栏的转换例句。

使用时或许需要修改符号等。

Javascript 相关文章推荐
用原生JavaScript实现jQuery的$.getJSON的解决方法
May 03 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
javascript写的异步加载js文件函数(支持数组传参)
Jun 07 Javascript
浅析js预加载/延迟加载
Sep 25 Javascript
js在指定位置增加节点函数insertBefore()用法实例
Jan 12 Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
Mar 25 Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
详解vue服务端渲染(SSR)初探
Jun 19 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
vue实现侧边栏导航效果
Oct 21 Javascript
简短几句 通俗解释javascript的闭包
Jan 17 #Javascript
javascript 内存回收机制理解
Jan 17 #Javascript
javascript 延迟加载技术(lazyload)简单实现
Jan 17 #Javascript
关于COOKIE个数与大小的问题
Jan 17 #Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 #Javascript
Jquery 插件开发笔记整理
Jan 17 #Javascript
JQuery学习笔记 nt-child的使用
Jan 17 #Javascript
You might like
PHP实现邮件群发的源码
2013/06/18 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
详解python datetime模块
2020/08/17 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
Delphi笔试题
2016/11/14 面试题
思想汇报范文
2013/11/04 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
质量负责人岗位职责
2015/02/15 职场文书
文员岗位职责范本
2015/04/16 职场文书
同事打架检讨书
2015/05/06 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python