使用javascript minifier here,如果找到
if ($(this).val()) {
idCat = $(this).val();
}
转换为此表达式
$(this).val()&&(idCat=$(this).val());
这种转变背后的理由是什么?
答案 0 :(得分:1)
$(this).val()&&(idCat=$(this).val());
就像一个简单的AND条件
$(this).val()
和(idCat=$(this).val())
是两个条件。
如果$(this).val()
为0或布尔等效于false的内容,如Boolean ("")
(即val()返回空字符串)或Boolean (null)
则第一个条件将失败,第二个条件将不被执行。
答案 1 :(得分:1)
这种技术称为“短路评估”。
答案 2 :(得分:0)
如果第一部分(在&&
之前)评估为false,则该代码的执行将停止,正如您通过测试以下代码所看到的那样......
(false)&&(console.log("statement is true"));
和
(true)&&(console.log("statement is true"));
它基本上是if语句的简写,我建议将来不要为了你而使用它,以及其他任何必须阅读你代码的人。虽然它不是世界上最复杂的东西,但它的可读性肯定比简单的if语句更容易被误读。