所以在生产之前,我使用Google Closure Compiler来缩小我的JavaScript。今天,我注意到它是如何缩小和优化代码的,并意识到以下趋势:
编译以下代码:
编译以下代码:
function b(a) {
if ( a == null ) {
console.log('ohai');
}
}
导致比较表达式的优化,其中字面量移到左边,变量移到右边。就像这样:
function b(a){null==a&&console.log("ohai")}
(顺便说一下,它会用单引号代替双引号。) 如果另一个操作数是对象,则表达式保持不变。为什么将文字字面量移动到运算符左侧可以优化表达式呢?
==
定义(我在看你,PHP)都应该是可交换的(x == y <=> y == x
)。 - Two-Bit Alchemist