美文网首页
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

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