一行 if vs && in JavaScript
One-line if vs && in JavaScript
之间有什么有意义的区别吗?
condition && console.log("this may run");
和
if (condition) console.log("this may run);
如果不是,最佳做法是什么?
本身没有区别,但是可以说前者是后者的shorthand表示法。
我建议你使用后面的条件,它使代码更易于解释,产生相同的结果并且字符数几乎相同。
如果你能维护代码,那就使用你喜欢的代码。
如果其他人可能需要阅读或维护它,则使用第二个。
你应该使用第二个。
您的代码应该说明它的含义。这就是写 "semantic" 代码的意思。如果您正在编写 if 条件,那么您应该使用 if
语句,因为这就是它的用途。 &&
在语义上是一个逻辑与,当您对两个值的逻辑合取的逻辑值感兴趣时应该使用它。
正如其他答案所建议的那样,编写语义代码可以使编写、理解和维护变得更容易。就此评论而言:
If someone else may need to read or maintain it, then use the second.
记住 "you six months from now" 是 "someone else"。
这里有一些使用 if
的具体原因,而你的意思是 if
:
如果要添加else
子句,直接添加即可。如果你写了 a && b
那么你必须将它重写为 a ? b : c
.
假设您使用了大括号,如 if (a) { b; }
,那么您可以通过编写 if (a) { b; c; }
轻松地向主体添加另一个步骤。如果您写了 a && b
,那么您需要将其重写为 a && (b, c)
或类似的东西;如果 c
不能用作表达式,这在某些情况下甚至是不可能的。
有些 linter 会(合理地)抱怨 a && b
。
请注意,缩小器通常会将您的第二个示例转换为第一个示例,因此如果您使用 &&
的理由是为了节省字节,则缩小器无论如何都会保存它们。
condition && console.log("this may run");
和
if (condition) console.log("this may run);
如果不是,最佳做法是什么?
本身没有区别,但是可以说前者是后者的shorthand表示法。
我建议你使用后面的条件,它使代码更易于解释,产生相同的结果并且字符数几乎相同。
如果你能维护代码,那就使用你喜欢的代码。
如果其他人可能需要阅读或维护它,则使用第二个。
你应该使用第二个。
您的代码应该说明它的含义。这就是写 "semantic" 代码的意思。如果您正在编写 if 条件,那么您应该使用 if
语句,因为这就是它的用途。 &&
在语义上是一个逻辑与,当您对两个值的逻辑合取的逻辑值感兴趣时应该使用它。
正如其他答案所建议的那样,编写语义代码可以使编写、理解和维护变得更容易。就此评论而言:
If someone else may need to read or maintain it, then use the second.
记住 "you six months from now" 是 "someone else"。
这里有一些使用 if
的具体原因,而你的意思是 if
:
如果要添加
else
子句,直接添加即可。如果你写了a && b
那么你必须将它重写为a ? b : c
.假设您使用了大括号,如
if (a) { b; }
,那么您可以通过编写if (a) { b; c; }
轻松地向主体添加另一个步骤。如果您写了a && b
,那么您需要将其重写为a && (b, c)
或类似的东西;如果c
不能用作表达式,这在某些情况下甚至是不可能的。有些 linter 会(合理地)抱怨
a && b
。
请注意,缩小器通常会将您的第二个示例转换为第一个示例,因此如果您使用 &&
的理由是为了节省字节,则缩小器无论如何都会保存它们。