之间是否存在任何有意义的差异
condition && console.log("this may run");
和
if (condition) console.log("this may run);
如果不是,哪种做法是最佳做法?
您应该使用第二个。
您的代码应该说明它的含义。这就是编写"语义"代码的含义。如果您正在编写If条件,那么您应该使用if
语句,因为这就是它的作用。从语义上讲,&&
是一个逻辑和,应该在您对两个值的逻辑结合所产生的逻辑值感兴趣的情况下使用。
正如其他答案所建议的那样,编写语义代码使编写、理解和维护更容易。就这条评论而言:
如果其他人可能需要阅读或维护,请使用第二个。
记住,"六个月后的你"就是"别人"。
当你指的是if
:时,以下是使用if
的一些具体原因
-
如果你想添加一个
else
子句,你可以直接添加它。如果你已经写了a && b
,那么你必须把它重写为a ? b : c
。 -
假设您使用了大括号,如在
if (a) { b; }
中,那么您可以通过编写if (a) { b; c; }
,轻松地向正文添加另一个步骤。如果您已经编写了a && b
,那么您需要将其重写为a && (b, c)
或类似的内容;在某些情况下,如果c
不能用作表达式,则这甚至是不可能的。 -
一些门楣人会(合理地)抱怨
a && b
。
请注意,minifier通常会将第二个示例转换为第一个示例,因此,如果使用&&
的基本原理是保存字节,则它们无论如何都会由minifier保存。
没有区别,但可以说前一个是后一个的简写符号。
我建议您使用后面的条件,它使代码更易于解释,产生相同的结果,并且具有几乎相同的字符数。
如果您可以维护代码,那么就使用您喜欢的代码。
如果其他人可能需要阅读或维护,请使用第二个。