闭包编译器 - 可以a ++> = 3成为++ a> 3?
我承认我问过一个问题,为什么Closure Compiler不会缩短几天前一见钟情的某些代码,但这个理由不适用于这种情况,我不确定为什么它没有缩短这里。
我的代码是:
var a = 0;
function b() {
return a++ >= 3;
}
现在有预增量和后增量。不同之处在于返回值 - a++
返回a
然后递增它,++a
先递增a
然后返回它。
这归结为我的代码可以缩短为(忽略空白删除):
var a = 0;
function b() {
return ++a > 3;
}
但是,Closure Compiler似乎没有改变(或认识)这一点。
因此,我的问题是:当使用而不是a++ >=
时,有什么副作用?
没有找到相关结果
已邀请:
3 个回复
峨躬坎抬焚
真正的问题是这种非常特殊的变革会带来什么样的实现? :-0 快乐的编码。
厦惫
)是[-252,252]范围内的常量整数,则应用此大小优化是安全的。在任何其他情况下(例如,如果右操作数是小数或非常大),则不安全。 我想,Closure没有实现这种优化,因为: 它需要大量检查以确保优化是安全的, 它只适用于可能不经常出现的特定情况,并且 它只保存一个字符,这似乎不值得打扰。
究补闯
每种情况下输出为
。