我正在查看由闭包生成的缩小的 js 文件之一。我发现无论我在哪里检查变量和字符串之间的相等性,例如,
a == "13" || a == "40"
闭包将其替换为
"13" == a || "40" == a
为什么要做这个修改?这里有一些性能优势吗?
最佳答案
这样做是为了获得较小的 gzip 压缩优势。如果你有“x == 1”和“1 == x”,编译器在这两种情况下都会将其切换为“1 == x”,你会得到更多压缩得更好的常规代码。胜利是如此之小,以至于我考虑过删除代码并节省 cpu 周期,但现在是这样。它与防止程序员错误无关,因为它永远不会将“x = 2”切换为“2 = x”,因为这会改变程序的含义。
关于比较语句的 Javascript 缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9256579/