15天学会JavaScript(视频教学版)
上QQ阅读APP看书,第一时间看更新

4.2 switch条件语句

本节介绍ECMAScript语法规范中的另一个条件选择语句——switch语句。在许多情况下,比如选择项很多的编程场景,switch条件选择语句会比if条件选择语句更为适用。

ECMAScript语法规范中定义的switch语句同样是一种条件选择语句,主要用于基于不同的条件来执行不同的操作的场景。

switch语句的语法格式如下:

   switch(n) {
    case 1:
       执行代码块 1;
       break;
    case 2:
       执行代码块 2;
       break;
   ……
    case n:
       执行代码块 n;
       break;
    default:
       case 1、case 2…case n不同时执行的代码;
   }

其中,n是用于选择的表达式(通常是一个变量)。然后,表达式的值依次与结构体中的每一个case值进行比较,如果存在匹配的case项,则执行该case项的代码块;如果与任何一个case项不匹配,则执行default项的代码块。另外,case项与case项之间通过break来间隔,default项通常写在全部case项之后。

下面来看一个使用switch语句的代码示例(详见源代码ch04目录中ch04-js-switch.html文件)。

【代码4-4】

   01  <!-- 添加文档主体内容 -->
   02  前端编程语言菜单:&nbsp;&nbsp;
   03  <select id="id-select-switch" onchange="on_select_change(this.value);">
   04      <option value="HTML5">HTML 5</option>
   05      <option value="CSS3">CSS 3</option>
   06      <option value="EcmaScript">EcmaScript</option>
   07  </select>
   08  <div id="id-div-switch">
   09      请选择您喜欢的前端编程语言:
   10  </div>
   11  <!-- 添加文档主体内容 -->
   12  <script type="text/javascript">
   13       var v_div = document.getElementById("id-div-switch");
   14       function  on_select_change(value) {
   15           switch(value) {
   16                case "HTML5":
   17                     v_div.innerHTML = "您选择前端编程语言: " + value;
   18                     break;
   19                case "CSS3":
   20                     v_div.innerHTML = "您选择前端编程语言: " + value;
   21                     break;
   22                case "EcmaScript":
   23                     v_div.innerHTML = "您选择前端编程语言: " + value;
   24                     break;
   25                default:
   26                     v_div.innerHTML = "您选择前端编程语言: ";
   27                     break;
   28           }
   29       }
   30  </script>

关于【代码4-4】的分析如下:

第03~07行代码通过<select>标签定义了一个下拉选择框控件,并添加了三个<option>选择项。其中,第03行代码中为该标签定义了“id”属性,并定义了“onchange”事件处理函数方法(on_select_change(this.value)),参数“this.value”代表<select>标签的选中值。关于JavaScript事件处理的内容我们会在后续的章节中详细介绍,此处只需要知道“onchange”事件是在用户操作<select>标签后被触发的;

第08~10行代码通过<div>标签定义了一个层,用于显示用户操作<select>标签结果的返回值;

第12~30行代码通过<script>标签定义了一段嵌入式JavaScript脚本。

第13行代码通过document.getElementById()方法获取了第08~10行代码定义的<div>标签的“id”值;

第14~29行代码定义了第03行代码中的“onchange”事件处理函数(on_select_change(value)),参数“value”为传递过来的<select>标签的选中值;

第15~28行代码通过switch语句对参数“value”进行选择判断,其中每个case语句定义了根据不同选择所执行的代码,主要是通过“innerHTML”属性将用户的操作结果显示到第08~10行代码定义的<div>标签中。

页面初始效果如图4.4所示。点开下拉菜单,任意选择一项,操作后的效果如图4.5和图4.6所示。

图4.4 switch语句(1)

图4.5 switch语句(2)

图4.6 switch语句(3)