Closure Compiler为什么喜欢!0代替true?

时间:2016-08-23 19:07:42

标签: javascript operators google-closure-compiler primitive

示例:

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原语的逻辑操作,直觉上看起来应该更昂贵。这不是这种情况吗?为什么不?

1 个答案:

答案 0 :(得分:1)

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

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