2016-08-23 4 views
0

Exemple:Pourquoi Closure Compiler favorise-t-il! 0 au lieu de vrai?

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

est compilé à:

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

0 se sent comme une opération logique en place une primitive Javascript, qui semble intuitivement comme il devrait être plus cher. Ce n'est pas le cas? Pourquoi pas?

+3

Parce qu'il est plus court de deux caractères. – Bergi

+3

L'exécution dans ce cas peut traiter ce '! 0' comme étant exactement équivalent à' true'; en d'autres termes, il est très probable que cela ne fait aucune différence une fois que le code est réellement exécuté, et avant cela, il enregistre 2 caractères. – Pointy

Répondre

1

La compression Gzip s'est avérée meilleure. Closure-compiler utilise heuristiques pour essayer de produire un fichier qui gzip à la plus petite taille possible.

Remarque: Dans certains cas, le fichier non gzipé est plus gros. Dans ce cas précis, c'est une victoire pour le fichier brut et la version gzip.