您的位置:

深入探究javascript switch语句

switch语句是JavaScript中的一个重要控制流语句,用于比较某个表达式与若干个值中的匹配是否相等,从而执行相应的代码块。在实际开发中,我们经常会用到switch语句来实现对某些变量的操作。接下来,我们将从多个方面对javascript switch语句进行详细的阐述。

一、switch语句的基本使用

switch (expression) {
    case value1:
        // 代码块1
        break;
    case value2:
        // 代码块2
        break;
    default:
        // 默认代码块
}

在上面这个例子中,expression是一个可以返回值的表达式,value1、value2等是用来与expression比较的值,如果expression的值与某个value值相等,就会执行相应的代码块。如果所有的value值都不匹配,就执行default中的代码块。每个case后面需要加上break,否则程序就会继续执行下一个case。

下面是一个简单的例子,用来展示如何使用switch语句:

let day = "Monday"
switch (day) {
  case "Monday":
    console.log("今天是周一");
    break;
  case "Tuesday":
    console.log("今天是周二");
    break;
  case "Wednesday":
    console.log("今天是周三");
    break;
  case "Thursday":
    console.log("今天是周四");
    break;
  case "Friday":
    console.log("今天是周五");
    break;
  default:
    console.log("今天是周末");
    break;
}

在这个例子中,我们比较day变量的值,如果符合某个case就打印相应的信息。如果不符合任何一个case,就执行default代码块。

二、switch语句的嵌套使用

在实际开发中,我们有时需要在switch语句中再嵌套另一个switch语句,以实现更复杂的逻辑。在下面这个例子中,我们展示如何根据学生的成绩等级输出相应的评语:

let grade = "A"
switch (grade) {
  case "A":
    console.log("优秀");
    break;
  case "B":
    console.log("良好");
    break;
  case "C":
    switch (subject) {
      case "数学":
        console.log("及格");
        break;
      case "语文":
        console.log("一般");
        break;
      default:
        console.log("不及格");
        break;
    }
    break;
  default:
    console.log("不及格");
    break;
}

在这个例子中,我们比较grade变量的值,如果符合某个case就打印相应的信息。如果grade的值为C,就再嵌套一个switch语句,根据subject变量的值来输出相应的信息。如果不符合任何一个case,就执行default代码块。

三、switch语句的多个匹配值

在实际开发中,我们有时需要让一个case同时匹配多个值。在下面这个例子中,我们展示如何同时将case 1和case 2匹配到同一个代码块中:

let num = 1
switch (num) {
  case 1:
  case 2:
    console.log("数字为1或2");
    break;
  case 3:
    console.log("数字为3");
    break;
  default:
    console.log("数字不在1到3之间");
}

在这个例子中,当num的值为1或2时,就会执行第二个case中的代码块。

四、switch语句的返回值

在javascript中,switch语句可以作为一个函数的返回值。在下面这个例子中,我们展示如何将switch语句作为一个函数的返回值:

function getResult(score) {
  switch (true) {
    case (score >= 90):
      return "优秀";
    case (score >= 80):
      return "良好";
    case (score >= 60):
      return "及格";
    default:
      return "不及格";
  }
}

console.log(getResult(85));
console.log(getResult(45));

在这个例子中,我们定义了一个名为getResult的函数,用来根据score的值返回相应的结果。在switch语句中,我们比较了score的值,如果符合某个case就返回相应的结果。如果不符合任何一个case,就执行default代码块,返回“不及格”。最后,我们调用了getResult函数,并分别传入了85和45两个参数,分别输出了对应的结果。