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 相关文章推荐
jQuery 工具函数学习资料
Apr 29 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
window.onload使用指南
Sep 13 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
Vue渲染函数详解
Sep 15 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
javascript中call,apply,callee,caller用法实例分析
Jul 24 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
神族 PROTOSS 概述
2020/03/14 星际争霸
PHP安装问题
2006/10/09 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
js弹出窗口简单实现代码
2017/03/22 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
python3.x实现发送邮件功能
2018/05/22 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
python如何保证输入键入数字的方法
2019/08/23 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
Django 再谈一谈json序列化
2020/03/16 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
中软国际Java程序员机试题
2012/08/19 面试题
教师产假请假条
2014/04/10 职场文书
滴水洞导游词
2015/02/10 职场文书
三八妇女节致辞
2015/07/31 职场文书
2016党校学习心得体会
2016/01/07 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android