前端代码优化之布尔条件判断太长的处理

  • 我们在开发过程中,有时候会遇到多个布尔值条件判断的情况,目前我们项目里的写法大多都是将各种判断糅杂在一起,这样非常不利于阅读和维护。
  • 这里给大家推荐下谷歌官方的处理方式。
  • 主要有两种优化方案。

例如,一个判断条件如下:

if ((!pepperoniService.empty() || sausages.size() > 0) && (useOnionFlag.get() || hasMushroom(ENOKI, PORTOBELLO)) && hasCheese()) {

  ...

}

第一步,将条件提取为一个命名准确的变量:

const isPizzaFantastic = (!pepperoniService.empty() || sausages.size() > 0) && (useOnionFlag.get() || hasMushroom(ENOKI, PORTOBELLO)) && hasCheese();


if (isPizzaFantastic) {
  ...
}

方法一,将布尔值分类:

const hasGoodMeat = !pepperoniService.empty() || sausages.size() > 0;
const hasGoodVeggies = useOnionFlag.get() || hasMushroom(ENOKI, PORTOBELLO);
const isPizzaFantastic = hasGoodMeat && hasGoodVeggies && hasCheese();

if (isPizzaFantastic) {
  ...

}

方法二,将逻辑隐藏在单独的方法中,用卫语句将条件提前返回:

function isPizzaFantastic() {
  if (!hasCheese()) {
    return false;
  }
  if (pepperoniService.empty() && sausages.size() == 0) {
    return false;
  }
  return useOnionFlag.get() || hasMushroom(ENOKI, PORTOBELLO);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值