2016-08-23 7 views
0

例:なぜClosure Compilerはtrueの代わりに0を優先しますか?

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の原始的で論理演算、のように感じています。これは当てはまりませんか?何故なの?

+3

2文字が短くなっています。 – Bergi

+3

この場合のランタイムは、 '!0'を' true'と全く同じものとして扱うことができます。言い換えれば、コードが実際に実行されると文字通り違いがない可能性が高く、その前に2文字を保存します。 – Pointy

答えて

1

Gzip圧縮が良好であることがわかりました。 Closure-compilerは経験則を使用して、可能な限り小さなサイズでgzipするファイルを生成しようとします。

注:場合によっては、gzip以外のファイルを大きくすることがあります。この特定のケースでは、生ファイルとgzipバージョンの勝利です。

関連する問題