JavaScript中switch语句的用法详解


Posted in Javascript onJune 03, 2015

 可以使用多个if... else if语句,如前面的章节,执行多路分支。然而,这并不总是最佳的解决方案,尤其是当所有分支的依赖单一的变量的值。

使用JavaScript1.2开始,你可以用它处理的正是这种情况,使用一个switch语句,它这样做更有效,如果不是反复地使用if... else if语句。
语法

switch语句的基本语法给出一个expression ,以评估计算几种不同的语句基于该表达式的值来执行。解释器检查对表达式的值的每一种情况,直到找到一个匹配。如果没有匹配,则缺省(default)条件将被使用。

switch (expression)
{
 case condition 1: statement(s)
          break;
 case condition 2: statement(s)
          break;
  ...
 case condition n: statement(s)
          break;
 default: statement(s)
}

break语句指示的解释器是特定情况下结束。如果它们被省略,则解释器将继续在以下每个情况(case)执行每个语句。

我们将解释break语句在循环控制这一章。
例子:

下面的例子说明了一个基本的while循环:

<script type="text/javascript">
<!--
var grade='A';
document.write("Entering switch block<br />");
switch (grade)
{
 case 'A': document.write("Good job<br />");
      break;
 case 'B': document.write("Pretty good<br />");
      break;
 case 'C': document.write("Passed<br />");
      break;
 case 'D': document.write("Not so good<br />");
      break;
 case 'F': document.write("Failed<br />");
      break;
 default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>

这将产生以下结果:

Entering switch block
Good job
Exiting switch block

 
例子:

考虑这样一种情况,如果不使用break语句:

<script type="text/javascript">
<!--
var grade='A';
document.write("Entering switch block<br />");
switch (grade)
{
 case 'A': document.write("Good job<br />");
 case 'B': document.write("Pretty good<br />");
 case 'C': document.write("Passed<br />");
 case 'D': document.write("Not so good<br />");
 case 'F': document.write("Failed<br />");
 default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>

这将产生以下结果:

Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Javascript 相关文章推荐
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
Apr 05 Javascript
Javascript缓存API
Jun 14 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Vue实现input宽度随文字长度自适应操作
Jul 29 Javascript
js实现手表表盘时钟与圆周运动
Sep 18 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
JS指定音频audio在某个时间点进行播放
Nov 28 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
ztree+ajax实现文件树下载功能
May 18 Javascript
jquery中添加属性和删除属性
Jun 03 #Javascript
JavaScript中的条件判断语句使用详解
Jun 03 #Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 #Javascript
在HTML中插入JavaScript代码的示例
Jun 03 #Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 #Javascript
在浏览器中打开或关闭JavaScript的方法
Jun 03 #Javascript
浅谈javascript中基本包装类型
Jun 03 #Javascript
You might like
使用dump函数,给php加断点测试
2013/06/25 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
Python KMeans聚类问题分析
2018/02/23 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
司机辞职报告范文
2014/01/20 职场文书
工作迟到检讨书
2014/02/21 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
单位政审意见范文
2015/06/04 职场文书
孙振耀退休感言
2015/08/01 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
分析Netty直接内存原理及应用
2021/06/14 Java/Android
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB