标签
note
字数
324 字
阅读时间
2 分钟
多个 if 分支用三木运算符优化
带有 IF 的代码:
js
function customerValidation(customer) {
if (!customer.email) {
return error('email is require')
} else if (!customer.login) {
return error('login is required')
} else if (!customer.name) {
return error('name is required')
} else {
return customer
}
}重构后代码:
js
const customerValidation = customer =>
!customer.email ? error('email is required')
: !customer.login ? error('login is required')
: !customer.name ? error('name is required')
: customerswitch 语句用 map 映射
带有 switch 的代码:
js
switch(breed){
case 'border':
return 'Border Collies are good boys and girls.';
break;
case 'pitbull':
return 'Pit Bulls are good boys and girls.';
break;
case 'german':
return 'German Shepherds are good boys and girls.';
break;
default:
return 'Im default'
}重构后代码:
js
const dogSwitch = (breed) =>({
"border": "Border Collies are good boys and girls.",
"pitbull": "Pit Bulls are good boys and girls.",
"german": "German Shepherds are good boys and girls.",
})[breed]||'Im the default';
dogSwitch("border xxx")复杂分支使用策略模式
场景:多个表单校验
参考:如何借助策略模式优化条件分支 - 掘金
状态模式
将过程切面化,分切面按步骤流转事件的状态
参考:条件语句的多层嵌套问题优化,助你写出不让同事吐槽的代码-阿里云开发者社区
参考
javascript - 避免在 JS 中过多使用 IF 语句优化技巧 - 终身学习者 - SegmentFault 思否