Switch Case中的经典
昨天在看JavaScript优化脚本时,其中有一条是使用三元运算符以及switch语句。关于优化代码时,使用Switch Case比If Else要快,这点我们知道,但是三元运算符呢?
在JavaScript精粹一书中提到,使用三元运算符比使用If Else语句要快。关于原因,书中并没有过多的介绍,我想这大概是因为使用三元运算符要比使用If Else代码要优化的多吧。好了,下面我们来看一个使用三元运算符的例子吧。
Var grade=score>=70?’pass’:fail;
此外,三元运算符也可以像If Else一样多层嵌套使用,不过为了增强其可读性,通常将代码分行写。看一下小例子:
Var grade=score>=90?’Good’:score>70?’Well’:’fail’;
Var grade=score>=90?’Good’:
Score>70?’Well’:
‘fail’;
怎么样,上面使用三元运算符要比使用If Else节省不少代码空间吧。
关于三元运算符就说这么多,下面再说两个你没有用到过的Switch Case语句,不信?看看你就知道了。
Classical Switch Case:
Switch case (score){
Case 90:
grade=’Good’;
Break;
Case 70:
grade=’Well’;
Break;
Default:
Grade=’fail’;
}
New Pet Switch Case:
Switch case (true){
Case score>=90:
Var grade=’Good’;
Break;
Case score>70:
Var grade=’Well’;
Break;
Default:
Var grade=’fail’;
}
Fast Switch Case:
Switch (score>=70){
Case true:
Var grade=’pass’;
Break;
Case false:
Var grade=’fail’;
Break;
Default:
Grade=’It’s impossible to get this result!’;
}
关于上面这三个Switch Case,毫无疑问,第一个是我们最熟悉的,也是最常用的,而且通过比较,可以发现第一个Switch Case的代码要比第二个要简单而且优化。但是两个Switch Case语句判断的条件不同,第一个判断的是一个表达式,第二个判断的是一个Bool值,我想判断Bool值应该比判断表达式速度要快。可惜目前百度Google没有给我明确的答案。
此外,采用第二种判断结构在判断复杂条件时,优势更明显,而且有些复杂结构无法用第一种结构来判断。比如说,我去超市购物了,看到好多东西要买,就买了一些东西回来。如何使用Switch Case来判断我买了什么呢?看Example:
Switch Case (true){
Case apple>0
Respose.write(“我买苹果啦!”);
Case banana>0
Respose.write(“我买香蕉啦!”);
Case orange>0
Respose.write(“我买橘子啦!”);
Case else
Respose.write(“忘了带钱了,回家拿钱去吧!”);
}
关于Switch Case,如果你有什么更新的想法,请联系我!
建议继续学习:
- 从Java视角理解CPU上下文切换(Context Switch) (阅读:5422)
- 从 if else 到 switch case 再到抽象 (阅读:2475)
- JavaScript:假如default不是switch的最后一项 (阅读:2090)
- 如何有效避免大量重复的switch分支 (阅读:2044)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:草原和大树 来源: 博客园-草原和大树
- 标签: Case Switch
- 发布时间:2010-08-12 09:13:19
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成