卫语句-前端应用
卫语句就是把复杂的条件表达式拆分成多个条件表达式,减少嵌套。
一般来说,当出现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]
// 就是假装逻辑特别长
// 就是假装逻辑特别长
// 就是假装逻辑特别长
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
处理后,多层次判断结构变为单层次结构,作用域更加明显,逻辑由嵌套变为线性处理
其实卫语句是比较方便的,只是要学会使用return,勤用return,就可以使代码结构更加清晰明了