发布于 2026-01-06 7 阅读
0

永远不要使用 if-else 语句。请改用这种方法。

永远不要使用 if-else 语句。请改用这种方法。

我们来谈谈一个能让你的代码更易读、更清晰的编码技巧:早期回报。

许多程序员依赖 if-else 语句来检查不同的条件,但堆叠这些语句会让代码变得混乱。相比之下,提前返回可以让我们预先处理所有错误情况,从而将理想情况留到函数末尾处理。

例子

以下函数用于检查用户是否可以获得折扣:

function getDiscountMessage(user) {
  if (user.isActive) {
    if (user.hasDiscount) {
      return `Discount applied for ${user.name}!`;
    } else {
      return `${user.name} does not qualify for a discount.`;
    }
  } else {
    return `User ${user.name} is inactive.`;
  }
}
Enter fullscreen mode Exit fullscreen mode

这段代码里充满了嵌套的if-else语句。🤮

相反,我们可以先用早期收益来涵盖错误情况,然后在最后重点关注“完美情况”:

function getDiscountMessage(user) {
  if (!user.isActive) {
    return `User ${user.name} is inactive.`;
  }

  if (!user.hasDiscount) {
    return `${user.name} does not qualify for a discount.`;
  }

  // Perfect scenario: user is active and qualifies for a discount
  return `Discount applied for ${user.name}!`;
}
Enter fullscreen mode Exit fullscreen mode

每个错误情况都在开头用一行代码直接处理。这使得我们的代码简洁明了,避免了层层嵌套的 if-else 语句块。这种模式对于保持每个函数只有一层抽象也十分有效,我在另一篇文章中对此进行了详细介绍。

所以下次不妨跳过 if-else 语句,直接尝试提前获取结果。😎

文章来源:https://dev.to/tymzap/dont-ever-use-if-else-use-this-instead-512h