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 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
Aug 14 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
浅谈javascript原型链与继承
Jul 13 Javascript
Vue基于NUXT的SSR详解
Oct 24 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
使用webpack搭建vue环境的教程详解
Dec 31 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
php接口隔离原则实例分析
2019/11/11 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Python 异常处理实例详解
2014/03/12 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
如何在python中写hive脚本
2019/11/08 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
赔偿协议书范本
2014/04/15 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
考试作弊检讨书
2014/10/21 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers
windows server2008 开启端口的实现方法
2022/06/25 Servers