【问题标题】:Why does Closure Compiler favor !0 in lieu of true? [duplicate]为什么 Closure Compiler 偏爱 !0 而不是 true? [复制]
【发布时间】:2016-12-30 17:44:24
【问题描述】:

例子:

var formatDate = function(d) {
  return dateFormat(d, "yyyy-mm-dd HH:MM:ss", true);
}

编译为:

var formatDate = function(a) {
  return dateFormat(a, "yyyy-mm-dd HH:MM:ss", !0);
};

!0 感觉就像一个 Javascript 原语的逻辑操作,直观上看起来应该更昂贵。不是这样吗?为什么不?

【问题讨论】:

  • 因为它短了两个字符。
  • 这种情况下的运行时可以将!0 视为与true 完全相同;换句话说,一旦代码实际运行,它很可能实际上没有任何区别,而在此之前它会节省 2 个字符。

标签: javascript operators google-closure-compiler primitive


【解决方案1】:

Gzip 压缩被发现更好。 Closure-compiler 使用启发式方法尝试生成一个文件,该文件将 gzip 压缩到尽可能小的大小。

注意:在某些情况下,这会使非 gzip 压缩文件更大。在这种特定情况下,它是原始文件和 gzip 版本的胜利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多