因此,这是我的未压缩的样子:这是如何缩小JS与这个未压缩版本相同?
function extractDropdownValues(){
var all_selected = true;
$('.variant_options select').each(function() {
if (this.selectedIndex == 0) {
all_selected = false;
}
});
这是压缩版本:
extractDropdownValues(){var e=!0;$(".variant_options select").each(function(){this.selectedIndex==0&&(e=!1)});
我被e=!0
是的all_selected = true
,也由this.selectedIndex==0
压缩版本的等同混淆如果声明。在压缩版本中,它表示if
此索引== 0,然后将其设置为false。
但在压缩的版本,它看起来像它正在检查selectedIndex
为等于0,并且对于&&
all_selected = false
(即e=!1
)。但我不希望这是if
条件,这应该是满足if
条件后的结果。
我看到这个错误吗?
P.S.压缩版本在生产中不起作用,但未压缩版本正在dev中工作。我不确定这两者是否相关,但表面上看,它们似乎与我不一样。
编辑1
正如我怀疑,我通过JS prettifier跑缩小的JS,这是结果:
function extractDropdownValues() {
var e = !0;
$(".variant_options select").each(function() {
this.selectedIndex == 0 && (e = !1)
});
洙......啊...... WTF正在发生这里?
我认为这个脚本正在检查在每次选择中选择了除第一个之外的选项。请注意,如果未选择任何选项,那么* selectedIndex *将为-1,脚本将评估是否选择了一个选项(即* selectedIndex *不是0)。因此,所有选择都不能选择选项,* all_selected *将被设置为“true”。测试应该是'this.selectedIndex> 0' – RobG 2013-03-27 06:03:09