因此,這是我的未壓縮的樣子:這是如何縮小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