关于js优化的问题

if (success && result) {
return XXX;
} else if (success && !result) {
return XXX;
} else {
return XXX;
}

类似与这种代码可以怎么优化?不需要写这么多if

阅读 2.4k
5 个回答

提前返回策略,你的例子

if (success && result) {  
return A;  
} else if (success && !result) {  
return B;  
} else {  
return C;  
}

改写为

if(!success) {
    return C;
}
// 此处肯定success了
if(result) {
    return A;
}
return B;
return success ? (result ? 1 : 2) : 3;

为了代码量更少甚至括号可以省略,但是为了读起来更容易理解,加上去比较好

策略模式了解一下。

可以在思否搜索文章 if else,或掘金if else
比如掘金if else 搜索结果

再搜索JavaScript策略模式。去学习下别人是怎么优化和少用if else

仅看这段代码的话,应该可以简化成如下的样子

if (success) {  
return result ? XXX1 : XXX2;  
}
return XXX3;  
const result =  (total <= 2 && 'A') || (total <= 3 && 'B') || (total <= 4 && 'C') || 'D'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题