javascript多重条件判断学习

发布时间:2020-04-27编辑:脚本学堂
本文介绍下,javascript编程中,有关多重条件判断的相关知识。有需要的朋友,参考下吧。

js在开发大型组件库时,会有很多的逻辑分支。

比如在线编辑框的编写:

if(target === "font"){
  someFunction(){...}
}
else if(target === "code"){
  someFunction(){...}  
}
else if(target === "table"){
  someFunction(){...}
}
else if(target === "images"){
  someFunction(){...}
}
else if(target === "link"){
  someFunction(){...}  
}
else if(target === "file"){
  someFunction(){...}  
}

为了有个清晰的逻辑,可以这样:

switch(target){
    case : "font" :
           someFunction(){...} 
    break; 
    case : "code" :
           someFunction(){...} 
    break;
    case : "table" :
           someFunction(){...} 
    break; 
    case : "images" :
           someFunction(){...} 
    break; 
    case : "link" :
           someFunction(){...} 
    break;
  case : "file" :
           someFunction(){...} 
    break;
}

如果碰到下面还有多重分支的情况改如何处理呢,大部分人都是继续if else或者switch case。
比如下面这段代码:

switch(target){
    case : "font" :
           someFunction(){...} 
    break; 
    case : "code" :
          switch(code){
                 case : "java" :
                       someFunction(){...} 
                 break;
                 case : "c" :
                       someFunction(){...} 
                 break;
                 case : "c++" :
                       someFunction(){...} 
                 break;
          }
         
    break;
    case : "table" :
           someFunction(){...} 
    break; 
    case : "images" :
           someFunction(){...} 
    break; 
    case : "link" :
           someFunction(){...} 
    break;
  case : "file" :
           someFunction(){...} 
    break;
}

这里补充一句:
js是一门面向对象的语言。

是否可以用面向对象的思想来解决此问题呢?
请看下面的代码:

editor = {
     "font" : function(){...}
     "code" : function(){...}
     "table" : function(){...}
     "images" : function(){...}
     "file" : function(){...}
}

editor[target]();

清晰易懂多了以,效率也肯定提升了,因为是对象直接寻址。

这里给出思路:
先创建一个对象,把所有的判断分支都放到这个对象里,然后再调用。

这种方法在何时需要或不需要呢?

需要:
1、在判断分支很多的情况下建议使用。条理清晰。
2、在分支里的逻辑很复杂的情况下,可以起到逻辑拆分的作用。

不需要用的情况:
1、简单的逻辑判断。
2、分支比较少的情况。