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 相关文章推荐
jquery select多选框的左右移动 具体实现代码
Jul 03 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
Bootstrap作品展示站点实战项目2
Oct 14 Javascript
Javascript 实现简单计算器实例代码
Oct 23 Javascript
JS闭包用法实例分析
Mar 27 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
May 12 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 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
JAVA/JSP学习系列之七
2006/10/09 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
php 定界符格式引起的错误
2011/05/24 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python获取多线程及子线程的返回值
2017/11/15 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Python中字符串与编码示例代码
2019/05/20 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
幼儿园师德师风学习材料
2014/05/29 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
HttpClient实现文件上传功能
2022/08/14 Java/Android