卫语句-前端应用

卫语句-前端应用

什么是卫语句

卫语句就是把复杂的条件表达式拆分成多个条件表达式,减少嵌套。

什么时候使用卫语句

一般来说,当出现if语句时就可以考虑是否使用卫语句
无论if是仅出现一次,还是多次

为什么要使用卫语句

一般来说卫语句使用是为了两个事情,

  • 减少智力成本
  • 结构优化

至于少量性能提升,只是副作用罢了

卫语句的应用场景

长if语句

长if语句是最为简单的处理,因为基本上没有什么智力成本,仅需将代码重构下即可,逻辑完全不动

优化前

if(list.length>0){
	list.forEach(item=>item)
	list.map(item=>item)
	list = [...list]
	// 就是假装逻辑特别长
	// 就是假装逻辑特别长
	// 就是假装逻辑特别长
}
// 结束了 else没有处理

优化后

if(list.length<=0) return

list.forEach(item=>item)
list.map(item=>item)
list = [...list]
// 就是假装逻辑特别长
// 就是假装逻辑特别长
// 就是假装逻辑特别长
处理思路
  1. 就是将if取反后处理else逻辑即可,没啥说的

if-else嵌套地狱

优化前

    var a, b //重点在于a、b的逻辑,故不赋值
    if (a || b) {
      if (a) {
        if (b) {
          // ...
          // a真b真的处理逻辑
          // ...
        } else {
          // ...
          // a真b假的处理逻辑
          // ...
        }
      } else {
        // ...
        // a假b真的处理逻辑
        // ...
      }
    } else {
      // ...
      // a、b均为假值的处理逻辑
      // ...
    }
  }

处理后

    var a, b //重点在于a、b的逻辑,故不赋值
    //a、b均为假值的处理逻辑在最外层且内部无冗余if,提取到头部判断
    if (!(a || b)) {
      // ...
      // a、b均为假值的处理逻辑
      // ...
      return
    }
    //下行逻辑, a或b必至少有一真
    //  将a、b均真提取
    if (a && b) {
      // ...
      // a真b真的处理逻辑
      // ...
      return
    }
    //下行逻辑, a或b必只有一真
    if (a) {
      // ...
      // a真b假的处理逻辑
      // ...
      return
    }
    // ...
    // a假b真的处理逻辑
    // ...
    return

处理后,多层次判断结构变为单层次结构,作用域更加明显,逻辑由嵌套变为线性处理

处理思路
  1. a、b均为假值的处理逻辑在最外层且内部无冗余if,提取到头部判断
  2. 下行逻辑, a或b必至少有一真
  3. 将a、b均真提取
  4. 下行逻辑, a或b必只有一真
  5. a真逻辑提取
  6. 剩下内容为b真

其实卫语句是比较方便的,只是要学会使用return,勤用return,就可以使代码结构更加清晰明了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_默_

别打赏了,点点赞,点点关注就行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值