js中if else 和 switch 的区别

文章2019-04-22332 人已阅来源:熙蚨

一直说想要研究底层原理,把知识学深一些,原来真的像初中的物理老师说的那样,把基础的原理都学会,就能做难的题目,高难度题目的框架都是靠简单的原理搭建的。

switch(n)
{
case 1:
  //执行代码块 1
  break;
case 2:
  //执行代码块 2
  break;
default:
  //n 与 case 1 和 case 2 不同时执行的代码
}

1、当分支较多时,当时用switch的效率是很高的。因为switch是随机访问的,就是确定了选择值之后直接跳转到那个特定的分支,但是if。。else是遍历所以得可能值,知道找到符合条件的分支,如此看来switch的效率确实比ifelse要高的多。

2、switch...case只能处理case为常量的情况,对非常量的情况是无能为力的。例如 if (a > 1 && a < 100),是无法使用switch...case来处理的。所以,switch只能是在常量选择分支时比ifelse效率高,但是ifelse能应用于更多的场合,ifelse比较灵活。