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,如果你有什么更新的想法,请联系我!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程控制(if,switch)高级
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If 语句
如果希望指定的条件成立时执行代码,就可以使用这个语句。
语法:
if (条件) { 条件成立时执行代码 }
注意:请使用小写字母。使用大写的 IF 会出错!
实例 1
<script type="text/javascript"> //Write a "Good morning" greeting if //the time is less than 10 var d=new Date() var time=d.getHours() if (time<10) { document.write("<b>Good morning</b>") } </script>
实例 2
<script type="text/javascript"> //Write "Lunch-time!" if the time is 11 var d=new Date() var time=d.getHours() if (time==11) { document.write("<b>Lunch-time!</b>") } </script>
注意:请使用双等号 (==) 来比较变量!
注意:在语法中没有 else。仅仅当条件为 true 时,代码才会执行。
JS:2.1.1,if 返回顶部 |
<html> <body> <script type="text/javascript"> var d = new Date() var time = d.getHours() if (time < 10) { document.write("<b>早安</b>") } </script> <p>本例演示 If 语句。</p> <p>如果浏览器时间小于 10,那么会向您问“早安”。</p> </body> </html>
JS:2.1.2,if-else 返回顶部 |
<html> <body> <script type="text/javascript"> var d = new Date() var time = d.getHours() if (time < 10) { document.write("<b>早安</b>") } else { document.write("<b>祝您愉快</b>") } </script> <p>本例演示 If...Else 语句。</p> <p>如果浏览器时间小于 10,那么会向您问“早安”,否则会向您问候“祝您愉快”。</p> </body> </html>
JS:2.1.2,if-else_if-else返回顶部 |
<html> <body> <script type="text/javascript"> var d = new Date() var time = d.getHours() if (time<10) { document.write("<b>Good morning</b>") } else if (time>=10 && time<16) { document.write("<b>Good day</b>") } else { document.write("<b>Hello World!</b>") } </script> <p>本例演示 if..else if...else 语句。</p> </body> </html>
JS:2.1.3,switch返回顶部 |
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <pre> JavaScript Switch 语句 如果希望选择执行若干代码块中的一个,你可以使用 switch 语句: 语法: switch(n) { case 1: 执行代码块 1 break case 2: 执行代码块 2 break default: 如果n即不是1也不是2,则执行此代码 } 工作原理:switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。 然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配 ,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。 实例: </pre> <script type="text/javascript"> //You will receive a different greeting based //on what day it is. Note that Sunday=0, //Monday=1, Tuesday=2, etc. var d=new Date() theDay=d.getDay() switch (theDay) { case 5: document.write("Finally Friday") break case 6: document.write("Super Saturday") break case 0: document.write("Sleepy Sunday") break default: document.write("I'm looking forward to this weekend!") } </script> </body> </html>
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |