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和CSS通过expression实现Table居中显示
Jun 28 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
深入领悟JavaScript中的面向对象
Nov 18 Javascript
jQuery DOM操作实例
Mar 05 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
Vue Render函数原理及代码实例解析
Jul 30 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 源代码压缩小工具
2009/12/22 PHP
深入分析php之面向对象
2013/05/15 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
全面了解javascript三元运算符
2016/06/27 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
让Vue也可以使用Redux的方法
2018/05/23 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
Python操作Word批量生成文章的方法
2015/07/28 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python单例模式的两种实现方法
2017/08/14 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
解决Python一行输出不显示的问题
2018/12/03 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
const和static readonly区别
2013/05/20 面试题
易程科技软件测试笔试
2013/03/24 面试题
机电专业体育教师求职信
2013/09/21 职场文书
英语翻译系毕业生求职信
2013/09/29 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
DE1107机评
2022/04/05 无线电