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 相关文章推荐
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
JavaScript 原型与继承说明
Jun 09 Javascript
关于javascript DOM事件模型的两件事
Jul 22 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
May 30 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
vuex state及mapState的基础用法详解
Apr 19 Javascript
vue+vue-router转场动画的实例代码
Sep 01 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
vue实现评论列表功能
Oct 25 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
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
js实现消息滚动效果
2017/01/18 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Python进行数据提取的方法总结
2016/08/22 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
2014端午节活动策划方案
2014/01/27 职场文书
安全生产月演讲稿
2014/05/09 职场文书
学校校庆演讲稿
2014/05/22 职场文书
消防隐患整改通知书
2015/04/22 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
部分武汉产收音机展览
2022/04/07 无线电