之间有什么有意义的区别吗?
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
.
请注意,minifiers通常会将您的第二个示例转换为第一个示例,因此如果您使用的基本原理&&
是保存字节,那么它们将由minifier保存.
这样没有区别,但你可以说前者是后者的简写符号.
我建议你使用后面的条件,它使代码更容易解释,产生相同的结果和几乎相同的字符数.