使用JavaScript minifier here,如果發現minifcation一個if表達式,給人意想不到的輸出
if ($(this).val()) {
idCat = $(this).val();
}
被改造成這種表達
$(this).val()&&(idCat=$(this).val());
這是什麼改造的探討背後的原理是什麼?
使用JavaScript minifier here,如果發現minifcation一個if表達式,給人意想不到的輸出
if ($(this).val()) {
idCat = $(this).val();
}
被改造成這種表達
$(this).val()&&(idCat=$(this).val());
這是什麼改造的探討背後的原理是什麼?
$(this).val()&&(idCat=$(this).val());
的作品就像一個簡單的AND條件,其中
$(this).val()
和(idCat=$(this).val())
兩個條件。
如果$(this).val()
是0或東西是假像Boolean ("")
(即VAL()返回一個空字符串)或Boolean (null)
然後第一條件的布爾equivant將失敗,並且第二條件將不被執行。
執行該代碼將停止,如果第一部分(&&
之前)的計算結果爲假,因爲你可以通過測試下面的代碼看...
(false)&&(console.log("statement is true"));
和
(true)&&(console.log("statement is true"));
它基本上是if語句的縮寫,我建議不要在將來爲你使用它,任何人都可以誰必須閱讀你的代碼。雖然它不是世界上最複雜的東西,但它的可讀性肯定比簡單的if語句更不可讀,更容易被誤讀。
是的,你是對的,我不會自己寫這樣的代碼。 –
你可以做更糟糕的事情 - 這個人並不真正讓我感到厭煩,但我知道這會讓一些人感到厭煩。 – Archer
我在這個相同的頁面上,並沒有打算再往下看。感謝您指出了這一點。 –