为什么 Closure Compiler 偏爱 !0 而不是 true?

Why does Closure Compiler favor !0 in lieu of true?

示例:

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

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

注意:在某些情况下,这会使非 gzip 文件更大。在这种特定情况下,原始文件和 gzip 版本都赢了。