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 相关文章推荐
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
js 与或运算符 || && 妙用
Dec 09 Javascript
jQuery源码中的chunker 正则过滤符分析
Jul 31 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
javascript中的Base64、UTF8编码与解码详解
Mar 18 Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 Javascript
jquery实现文本框的禁用和启用
Dec 07 Javascript
Vue中fragment.js使用方法详解
Mar 09 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
VUE实现密码验证与提示功能
Oct 18 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 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
PHP 输出缓存详解
2009/06/20 PHP
PHP解析RSS的方法
2015/03/05 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
js继承的实现代码
2010/08/05 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
常用DOM整理
2015/06/16 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
layui分页效果实现代码
2017/05/19 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
tensorflow获取变量维度信息
2018/03/10 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python 批量修改/替换数据的实例
2018/07/25 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python exit出错原因整理
2020/08/31 Python
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
园林设计师自荐信
2013/11/18 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang