如果vs&&在JavaScript中

One-line if vs && in JavaScript

本文关键字:amp JavaScript 如果 vs      更新时间:2023-09-26

之间是否存在任何有意义的差异

condition && console.log("this may run");

if (condition) console.log("this may run);

如果不是,哪种做法是最佳做法?

您应该使用第二个。

您的代码应该说明它的含义。这就是编写"语义"代码的含义。如果您正在编写If条件,那么您应该使用if语句,因为这就是它的作用。从语义上讲,&&是一个逻辑和,应该在您对两个值的逻辑结合所产生的逻辑值感兴趣的情况下使用。

正如其他答案所建议的那样,编写语义代码使编写、理解和维护更容易。就这条评论而言:

如果其他人可能需要阅读或维护,请使用第二个。

记住,"六个月后的你"就是"别人"。

当你指的是if:时,以下是使用if的一些具体原因

  1. 如果你想添加一个else子句,你可以直接添加它。如果你已经写了a && b,那么你必须把它重写为a ? b : c

  2. 假设您使用了大括号,如在if (a) { b; }中,那么您可以通过编写if (a) { b; c; },轻松地向正文添加另一个步骤。如果您已经编写了a && b,那么您需要将其重写为a && (b, c)或类似的内容;在某些情况下,如果c不能用作表达式,则这甚至是不可能的。

  3. 一些门楣人会(合理地)抱怨a && b

请注意,minifier通常会将第二个示例转换为第一个示例,因此,如果使用&&的基本原理是保存字节,则它们无论如何都会由minifier保存。

没有区别,但可以说前一个是后一个的简写符号。

我建议您使用后面的条件,它使代码更易于解释,产生相同的结果,并且具有几乎相同的字符数。

如果您可以维护代码,那么就使用您喜欢的代码。

如果其他人可能需要阅读或维护,请使用第二个。