关于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 相关文章推荐
广告显示判断
Aug 31 Javascript
jQuery使用手册之三 CSS操作
Mar 24 Javascript
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
Sep 04 Javascript
jquery实现瀑布流效果分享
Mar 26 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
Dec 12 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
javascript的 {} 语句块详解
Feb 27 Javascript
深入理解js函数的作用域与this指向
May 28 Javascript
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 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
zend framework配置操作数据库实例分析
2012/12/06 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
从零学Python之hello world
2014/05/21 Python
python写的ARP攻击代码实例
2014/06/04 Python
PyQt5每天必学之组合框
2018/04/20 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
Java如何读取CLOB字段
2013/10/10 面试题
最受欢迎的自我评价
2013/12/22 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
人事经理岗位职责
2014/04/28 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2015年药房工作总结
2015/04/25 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL