条件语句对比

简介

常见的条件语句有if-else,switch-case,查询表css

各类条件语句比对

if-else

最坏的状况下(value=10)咱们可能要作10次判断才能返回正确的结果html

if (value == 0){ 
    return result0; 
} else if (value == 1){
    return result1; 
} else if (value == 2){ 
     return result2; 
} else if (value == 3){
     return result3; 
} else if (value == 4){
    return result4; 
} else if (value == 5){ 
   return result5; 
} else if (value == 6){ 
   return result6;
} else if (value == 7){
   return result7; 
} else if (value == 8){
   return result8; 
} else if (value == 9){
   return result9; 
} else {
    return result10;
}

switch-case

  1. 让代码显得可读性更强
  2. 若是多个value值返回同一个结果,就不用重写return那部分的代码。
  3. 当case数达到必定数量时,swtich-case语句的效率是比if-else高的,由于switch-case采用了branch table(分支表)索引来进行优化,固然各浏览器的优化程度也不同。
switch (value) {
case 0:
    return result0;
case 1:
    return result1;
case 2:
    return result2;
case 3:
    return result3;
case 4:
    return result4;
case 5:
    return result5;
case 6:
    return result6;
case 7:
    return result7;
case 8:
    return result8;
case 9:
    return result9;
default:
    return result10;
}

查找表

优势:当数据量很大的时候,查找表的效率一般要比if-else语句和swtich-case语句高.
局限性:固然查找表的使用是有局限性的,每一个case对应的结果只能是一个取值而不能是一系列的操做。
注意点:查找表能用数字和字符串做为索引,而若是是字符串的状况下,最好用对象来代替数组。nginx

var results = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10];
return results[value];

小结

  1. 当只有两个case或者case的value取值是一段连续的数字的时候,咱们能够选择if-else语句
  2. 当有3~10个case数而且case的value取值非线性的时候,咱们能够选择switch-case语句
  3. 当case数达到10个以上而且每次的结果只是一个取值而不是额外的JavaScript语句的时候,咱们能够选择查找表

参考资料

  1. 高性能JavaScript 循环语句和流程控制 http://www.imooc.com/article/3657
相关文章
相关标签/搜索