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 相关文章推荐
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
浅谈javascript 函数表达式和函数声明的区别
Jan 05 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 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登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
树结构之JavaScript
2017/01/24 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
详解react组件通讯方式(多种)
2020/05/06 Javascript
详解JS预解析原理
2020/06/16 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
基于Python对数据shape的常见操作详解
2018/12/25 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python 操作excel表格的方法
2020/12/05 Python
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
房地产项目策划书
2014/02/05 职场文书
争先创优公开承诺书
2014/08/30 职场文书
研讨会通知
2015/04/27 职场文书
开展警示教育活动总结
2015/05/09 职场文书
学习经验交流会策划书
2015/11/02 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis