美文网首页
JavaScript基础--流程控制-Switch

JavaScript基础--流程控制-Switch

作者: 绚丽多彩的白 | 来源:发表于2020-09-16 10:15 被阅读0次

Switch基本概念

  • Switch和if一样都属于选择结构, 都会对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

Switch基本格式

switch(条件表达式){
  case 表达式:
      语句1;
      break;
  case 表达式:
      语句2; 
      break;
  case 表达式n:
      语句n;
      break;
  default:
      语句n+1;
      break;
}
  • 其语义是:
    • 计算条件表达式的值。 并逐个与case后面表达式的结果值比较
    • 条件表达式的值与某个表达式的值全等时, 执行其后的语句,并且不会再与其它case进行比较
    • 条件表达式的值与所有case后的表达式均不相同时,则执行default后的语句。
  • 示例
    var num = 2;
    switch(num){
        case 1:
            console.log("壹");
            break;
        case 2:
            console.log("贰"); // 输出贰
            break;
        case 3:
            console.log("叁");
            break;
        default:
            console.log("非法数字");
            break;
    }

Switch注意事项

  • case全等于问题
    • JavaScript中case判断是否相等时是全等于(===),而不是等于(==),也就是说既会判断类型是否相等又会判断值是否相等
      var str = "123";
      switch (str){
          case 123:
              console.log("123数字");
              break;
          case "123":
              console.log("123字符串"); // 输出123字符串
              break;
          default:
              console.log("default");
              break;
      }
      
    • case后可以是常量也可以是变量
      var num = 120;
      switch (120){
          case num: // 这里可以是变量
              console.log("120"); // 输出120
              break;
          case 110: // 这里可以是常量
              console.log("110");
              break;
          default:
              console.log("default");
              break;
      }
      
  • 表达式判断问题
    • 判断时会先计算表达式的值,再判断
    switch (120 + 3){ // 计算后为123
        case 120:
            console.log("120");
            break;
        case 3:
            console.log("3");
            break;
        case 3 + 120: // 计算后为123
            console.log("3 + 120"); // 输出3 + 120
            break;
        default:
            console.log("default");
            break;
    }
    
  • case的穿透问题
    • switch里面的case只要匹配一次其它的都会失效,包括default.
    • 在case语句最后增加 break 语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果
      var num = 2;
      switch(num){
          case 1:
              console.log("壹");
          case 2:
              console.log("贰"); // 输出贰
          case 3:
              console.log("叁");// 输出叁
          default:
              console.log("非法数字");  // 输出非法数字
      }
      
  • default的位置问题
    • default的位置问题
    • default语句可以写在switch语句中的任意位置

if语句和switch语句选择

  • 分支比较多无法穷尽时最好用 if, 其它情况可以按照个人习惯
  • 如果数据量不是很大, 并且数据是固定的可以用Switch

相关文章

  • JavaScript基础--流程控制-Switch

    Switch基本概念 Switch和if一样都属于选择结构, 都会对给定的条件进行判断,再根据判断结果来决定执行哪...

  • 10-JavaScript基础-流程控制-Switch

    Switch基本概念 Switch和if一样都属于选择结构, 都会对给定的条件进行判断,再根据判断结果来决定执行哪...

  • 10-JavaScript基础-流程控制-Switch

    Switch基本概念 Switch和if一样都属于选择结构, 都会对给定的条件进行判断,再根据判断结果来决定执行哪...

  • 2018-11-29

    17js流程控制switch 17js流程控制switch //js流程控制swi...

  • JavaScript-流程控制语句

    一、if流程控制语句 二、switch流程控制语句 三、流程控制语句

  • Go基础笔记

    Go语言基础(一) 流程控制语句:for、if、else、switch、defer for Go只有一种循环结构:...

  • JavaScript (5)-流程控制,if, switch,

    在流程控制之前,首先要明白什么是代码块 代码块 用{}包围起来的代码,就是代码块。 JS中的代码块,只具有分组的作...

  • PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScrip...

  • PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScrip...

  • JAVA switch语句

    流程控制语句switch switch语句解构(重要) A:switch语句解构 a:switch只能针对某个表达...

网友评论

      本文标题:JavaScript基础--流程控制-Switch

      本文链接:https://www.haomeiwen.com/subject/cbuzektx.html