专业编程基础技术教程

网站首页 > 基础教程 正文

JavaScript条件语句:switch语句(js条件语句有哪些)

ccvgpt 2024-08-02 11:51:44 基础教程 41 ℃

一、switch语句

ECMAScript中switch语句的语法与其他基于C的语言非常接近,语法如下:

JavaScript条件语句:switch语句(js条件语句有哪些)

switch(expression){
 case value: statement;
 break;
 case value: statement;
 break;
 case value: statement;
 break;
 default: statemen;
}

switch语句中的每一种情形(case)的含义是:如果表达式等于这个值(value),则执行后面的语句(statement)。而break关键字会导致代码执行流跳出switch语句。如果省略break关键字,就会导致执行完当前case后,继续执行下一个case。最后的default关键字则用于在表达式不匹配前面任何一种情形的时候,执行机动代码(相当于一个else语句)。

二、switch语句和if语句是等价的

在某种程度上,switch语句和if语句是等价的。如下所示:

//if语句
if(i==25){
 alert("25");
} else if(i == 35){
 alert("35");
} else if(i == 45){
 alert("45");
} else {
 alert("Other");
}
//switch语句
switch(i){
 case 25:
 alert("25");
 break;
 case 35:
 alert("35");
 break;
 case 45:
 alert("45");
 break;
 default:
 alert("Other");
}

三、多个case合并

通过为每个case后面都添加一个break语句,就可以避免同时执行多个case代码的情况。如果确实需要混合几种情形,可以省略break,但最好添加注释。

switch(i){
 case 25: //合并两种情形
 case 35:
 alert("25 or 35");
 break;
 case 45:
 alert("45");
 break;
 default:
 alert("Other");
}

四、ECMAScript中的switch语句的特征

ECMAScript中的switch语句借鉴自其他语言,但这个语句也有自己的特色:

  1. 可以在switch语句中使用任何数据类型(在很多其他语言中只能使用数值),无论是字符串,还是对象都没有问题。
  2. 每个case的值不一定是常量,可以是变量,甚至是表达式。
  3. switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串“10”不等于数值10)。
//字符串比较
switch("hello world"){
 case "hello" + "world":
 alert("Greeting was found");
 break;
 case "goodbye":
 alert("Closing was found");
 break;
 default:
 alert("Unexpected message was found.");
}
//布尔值比较
var num = 25;
switch(true){
 case num < 0:
 alert("Less than 0.");
 break;
 case num >= 0 && num <= 10:
 alert("Between 0 and 10.");
 break;
 case num > 10 && num <= 20:
 alert("Between 10 and 20.");
 break;
 default:
 alert("More than 20.");
}

最近发表
标签列表