永远不要使用 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.`;
}
}
这段代码里充满了嵌套的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}!`;
}
每个错误情况都在开头用一行代码直接处理。这使得我们的代码简洁明了,避免了层层嵌套的 if-else 语句块。这种模式对于保持每个函数只有一层抽象也十分有效,我在另一篇文章中对此进行了详细介绍。
所以下次不妨跳过 if-else 语句,直接尝试提前获取结果。😎
文章来源:https://dev.to/tymzap/dont-ever-use-if-else-use-this-instead-512h