关于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 相关文章推荐
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
JS 自定义带默认值的函数
Jul 21 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
Javascript writable特性介绍
Feb 27 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
Mar 13 Javascript
jquery使用经验小结
May 20 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
js H5 canvas投篮小游戏
Aug 18 Javascript
js阻止冒泡和默认事件(默认行为)详解
Oct 20 Javascript
Angularjs实现多图片上传预览功能
Jul 18 Javascript
vue-cropper组件实现图片切割上传
May 27 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
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Django中信号signals的简单使用方法
2019/07/04 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
Python爬取某平台短视频的方法
2021/02/08 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
制定岗位职责的原则
2013/11/08 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
python对文档中元素删除,替换操作
2022/04/02 Python