Nat*_*han 12 javascript google-closure-compiler
所以我正在尝试使用Google Closure Compiler,我注意到它会切换所有相等参数,以便变量始终位于比较的右侧.
所以,现在不是typeof XMLHttpRequest=="undefined"我有"undefined"==typeof XMLHttpRequest,我有if(null!==a),而不是if(a!==null),就像一些例子.
我知道他们完成了同样的事情,但这不是我习惯的风格.切换后会有什么好处吗?我看不出会有什么.
有人可以向我解释为什么Closure Compiler决定这样做吗?只是写了那部分Closure的人的偏好吗?
编辑:为了澄清,人们告诉我为什么它可能被认为是良好的编码实践.那没关系,但这是在编译之后.是否有性能优势,或者Closure Compiler只是试图证明一个观点?
Joh*_*136 12
通常用C/C++这样的语言来完成,所以你不能无意中做到
if (a = null) {
    // sets a to null and everyone is happy.
    // but probably meant to check if a is null or not.
    // via (a == null)
}
if (null = a) {
    // won't compile
}
Joh*_*ohn 11
编译器切换顺序的原因很简单:使用gzip可以更好地压缩.编译器不关心提高理解力或使编辑更容易.通过切换顺序公共比较,例如"if(x == null)... if(y == null)..."变为"if(null == x)... if(null == y)". .."Gzip发现"if(null =="并且能够用单个标记替换它.这不是一个很大的改进,但它在一个大的代码库中加起来.
| 归档时间: | 
 | 
| 查看次数: | 492 次 | 
| 最近记录: |