关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题


Posted in Javascript onMarch 01, 2012

最近在看松散耦合可定制百度的开源框架tangram.js目光突然就聚焦在一种获得毫秒数的写法:
(+new Date())
其实这种写法也没什么就是用运算符转化日期为number型,于是我肯定这种写法没有日期原生写法(new Date().getTime())效率高 :
于是做了下面测试:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>关于Date转化成毫秒数的测试</title> 
<style type="text/css"> 
<!-- 
body{font-size:12px;} 
table{border-top:1px solid #dfdfdf;border-right:1px solid #dfdfdf;} 
th,td{padding:5px;text-align:center;} 
th{background:#444;color:#fff;} 
td{border-left:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;} 
//--> 
</style> 
</head> 
<body> 
<script language="javascript" type="text/javascript"> 
// <![CDATA[ 
(function () { 
var bank=function(){}; 
var d1,d2,d3,temp; 
var d1=new Date(); 
for(var i=0;i<1000000;i++){ 
temp=new Date().getTime(); 
} 
var d2=new Date(); 
for(var i=0;i<1000000;i++){ 
temp=(+new Date()); 
} 
var d3=new Date(); 
//打印 
document.write('第一次循环所用时间:'+(d2-d1)+'<br/>第一次循环所用时间:'+(d3-d2)); 
})(); 
// ]]> 
</script> 
</body> 
</html>

分别循环一百万次次后在不同浏览器的结果如下:
IE6:
第一次循环所用时间:3406
第一次循环所用时间:5313
IE7:
第一次循环所用时间:3594
第一次循环所用时间:5000
IE8:
第一次循环所用时间:2735
第一次循环所用时间:3453
chrome:
第一次循环所用时间:210
第一次循环所用时间:337
opera\safari\firefox
基本上相差 100ms,但仍是最后一种慢

结论:证明我是正确的+new Date()写法比new Date().getTime()效率低,原因进行了类型转化,通常我们常用的数量级(一万次以内)不是很大,所以在个浏览器几乎不用考虑执行效率的问题,所以第一种写法用起来计较好,还节省了9个字符。当用js游戏开发时,当用到大数量级的时,建议原生写法。可以提高20%效率。

Javascript 相关文章推荐
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
vue实现单选和多选功能
Aug 11 Javascript
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
vue裁切预览组件功能的实现步骤
May 04 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
细说webpack6 Babel的使用详解
Sep 26 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 Javascript
基于js实现判断浏览器类型代码实例
Jul 17 Javascript
在vue中实现echarts随窗体变化
Jul 27 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 #Javascript
JavaScript中的变量声明早于赋值分析
Mar 01 #Javascript
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 #Javascript
Jquery提交表单 Form.js官方插件介绍
Mar 01 #Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 #Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
Mar 01 #Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 #Javascript
You might like
Discuz! Passport 通行证整合
2008/03/27 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python实现Const详解
2015/01/27 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python类属性的延迟计算
2016/10/22 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python游戏开发的五个案例分享
2020/03/09 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
应届毕业生的自我鉴定
2013/11/13 职场文书
结婚典礼证婚词
2014/01/11 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
汽修专业自荐信
2014/07/07 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技