5

在 JavaScript 中,我们可以得到一个代表当前日期/时间的数字,如下所示:

var dt = new Date();
var e = dt.getTime();

这样做的稍微短一点的方法可能是:

var f = (new Date()).getTime();

最紧凑的方式体现在以下代码中:

var g = +new Date;  //11 bytes shorter

(看到他们在这里工作:http: //jsfiddle.net/es4XW/2/

现在,当你搜索谷歌首页的源代码时,你会发现第二个约定被使用了 11 次。因此,Google 似乎每次都可以节省 11 个字节——总共 121 个字节。

压缩和缓存将在缓解这一问题中发挥作用,但谷歌肯定值得做这个简单的转换。

将此与亚马逊的首页代码进行比较和对比,后者确实使用了第三种约定(尽管并非在所有情况下)。

那么为什么谷歌对这种优化不感兴趣呢?尽管 121 字节对我们大多数人来说是微不足道的,但我原以为他们会对从首页挤出最后一点性能感兴趣。

4

1 回答 1

4

我会说可读性和可维护性超过了边际字节节省。此外,前两个选项是面向未来的,而第三个选项是一个实现细节,它可能会在不同的引擎(例如 Rhino、Node)中改变或工作方式不同。

您的示例的第 4 种可能性是将调用包装到一个函数中:

var now = function() {
    return (new Date().getTime());
}

当然,一旦你调用它至少几次,这只会节省几个字节。

于 2012-08-07T09:05:10.673 回答