JS:流程控制(if,switch)高级 + Switch Case中的经典

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>
复制代码

 

warn作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值