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一种取同级值的方式(比如你在GridView中)
Mar 15 Javascript
细说javascript函数从函数的构成开始
Aug 29 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
无闪烁更新网页内容JS实现
Dec 19 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
Dec 15 Javascript
Summernote实现图片上传功能的简单方法
Jul 11 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 Javascript
vue3+typescript实现图片懒加载插件
Oct 26 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
PHP实现简易blog的制作
2016/10/24 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
Javascript Math对象
2009/08/13 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
Python中的引用和拷贝浅析
2014/11/22 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
python多线程之事件Event的使用详解
2018/04/27 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
django之自定义软删除Model的方法
2019/08/14 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
python在协程中增加任务实例操作
2021/02/28 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
行政助理岗位职责
2013/11/10 职场文书
班级德育工作实施方案
2014/02/21 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis