Jam*_*man 5 javascript optimization datetime
在JavaScript中,我们可以得到一个代表当前日期/时间的数字,如下所示:
var dt = new Date();
var e = dt.getTime();
Run Code Online (Sandbox Code Playgroud)
稍微缩短这种做法可能是:
var f = (new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)
执行此操作的最紧凑方式反映在以下代码中:
var g = +new Date; //11 bytes shorter
Run Code Online (Sandbox Code Playgroud)
(见他们在这里工作:http://jsfiddle.net/es4XW/2/)
现在,当您搜索Google首页的源代码时,您会发现第二次约定使用了11次.因此,似乎每次谷歌都可以节省11个字节 - 总共121个字节.
压缩和缓存将在减轻这种情况方面发挥作用,但Google肯定有必要进行这种简单的切换.
将其与亚马逊的首页代码进行比较和对比,他们使用第三种约定(尽管不是每次都使用).
那么为什么Google对这种优化不感兴趣呢?虽然121个字节对我们大多数人来说都是花生,但我原本以为他们会对从头版中挤出最后一点性能感兴趣.
我想说的是可读性和可维护性超过了边际字节节省。此外,前两个选项是面向未来的,而第三个选项是实现细节,可能会在引擎(例如 Rhino、Node)之间发生更改或工作方式不同。
您的示例的第四种可能性是将调用包装到函数中:
var now = function() {
return (new Date().getTime());
}
Run Code Online (Sandbox Code Playgroud)
当然,一旦您至少调用几次,这只会节省几个字节。