关于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 相关文章推荐
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
基于jquery的button默认enter事件(回车事件)。
May 18 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
Aug 15 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 Javascript
通俗易懂地解释JS中的闭包
Oct 23 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
js中Function引用类型常见有用的方法和属性详解
Dec 11 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
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
js 幻灯片的实现
2011/12/06 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
vue实现拖拽效果
2019/12/23 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
团日活动总结范文
2014/04/25 职场文书
医学专业大学生求职信
2014/07/12 职场文书
端午节活动总结
2014/08/26 职场文书
小学六年级毕业感言
2015/07/30 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python