关于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 相关文章推荐
javascript定义函数的方法
Dec 06 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
一个jquery实现的不错的多行文字图片滚动效果
Sep 28 Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
Jul 14 Javascript
AngularJs  Understanding Angular Templates
Sep 02 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
认识less和webstrom的less配置方法
Aug 02 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
Vue实现简单计算器
Jan 20 Vue.js
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
php中explode的负数limit用法分析
2015/02/27 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
js列举css中所有图标的实现代码
2011/07/04 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
React 组件间的通信示例
2018/06/14 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
JS实现li标签的删除
2019/04/12 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
Vue的Options用法说明
2020/08/14 Javascript
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
Python实现打印实心和空心菱形
2019/11/23 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
巴西购物网站:Submarino
2020/01/19 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
个性大学生自我评价
2013/12/04 职场文书
网吧消防安全制度
2014/01/28 职场文书
生产部管理制度
2014/01/31 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
英语感谢信范文
2015/01/20 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
swagger如何返回map字段注释
2021/07/03 Java/Android