在Jest中对JS进行基准测试:Date转Number
Number(new Date()) 与 +new Date() 的性能对比及结论
我在本地针对这两种获取时间戳的方式做了基准测试,整理出以下内容供大家参考:
- 功能上两者完全等价,都能把Date实例转换为对应的Unix时间戳数值
- 性能方面,
+new Date()会略快于Number(new Date()),但在现代浏览器/Node.js环境下,两者的性能差极小,日常开发中基本可以忽略 - 可读性上,
Number(new Date())的表意更直白,新手也能快速理解;+new Date()属于利用一元加号的类型转换语法糖,需要对JS类型转换规则有一定了解
测试代码示例
// 测试 +new Date() console.time('plus-new-date'); for (let i = 0; i < 1000000; i++) { +new Date(); } console.timeEnd('plus-new-date'); // 测试 Number(new Date()) console.time('number-new-date'); for (let i = 0; i < 1000000; i++) { Number(new Date()); } console.timeEnd('number-new-date');
测试环境
- Chrome 118(桌面端)
- 单次测试循环100万次,重复5次取平均耗时
如果各位有不同环境下的测试数据、更科学的测试方案,或者代码优化建议,欢迎一起交流讨论。
内容的提问来源于stack exchange,提问作者sybb
相关产品推荐
相关产品推荐

